目录
一.B/S模式和C/S模式
C/S:客户端服务器端结构模式
B/S:浏览器服务器模结构模式
B/S结构图:
二.创建web项目
三.举例说明Servlet执行流程图:
四.Servlet项目中常见的问题
一.当创建web项目时,没有勾选Java EE时,如何添加web
二.在web文件中导入jar
三.404
设置默认路径方式一:
设置默认路径方式二:
四.405
五.空指针和NumberFormatException
六.500
七.中文编码出错
tomcat8之后:
tomcat8之前:
(使用jdk8版本尽量不要使用tomcat9及以上版本的tomcat,版本不匹配的问题)
一.B/S模式和C/S模式
C/S:客户端服务器端结构模式
优点:充分利用客户端机器资源,减轻服务器负荷。(将一部分安全性不高的计算机存储任务安装在客户端,不需要将所有的计算和资源放在服务器上,减轻服务器的压力)
缺点:占用客户端内存,需要安装升级,维护成本较高
B/S:浏览器服务器模结构模式
优点:所有数据全部部署在服务器上,安全性高,升级维护成本低。客户端不需要安装。
缺点:服务器负荷重,需要服务器和客户端浏览器频繁交互,产生网络负荷。
B/S结构图:
二.创建web项目
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form method="post" action="Add">
ID:<input type="text" name="id"/><br/>
姓名:<input type="text" name="username"/><br/>
balance:<input type="text" name="balance"/><br/>
<input type="submit" value="添加">
</form>
</body>
</html>
package temp;
import Dao.UserDaoImpl;
import bean.User;
import org.apache.commons.dbutils.ResultSetHandler;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
public class AddServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String userId = request.getParameter("id");
int id = Integer.parseInt(userId);
String name = request.getParameter("username");
String userBalance = request.getParameter("balance");
double balance = Double.parseDouble(userBalance);
System.out.println(id);
System.out.println(name);
System.out.println(balance);
}
}
三.举例说明Servlet执行流程图:
四.Servlet项目中常见的问题
一.当创建web项目时,没有勾选Java EE时,如何添加web
二.在web文件中导入jar
在web-inf中创建lib,其中的类库只能被改模块使用,其他模块不能使用
如果已经在项目的目录下创建了lib:
三.404
访问路径不对,检查网址
设置默认路径方式一:
设置默认路径方式二:
在xml配置文件设置以下内容:
设置默认打开的页面名
四.405
405是值请求方法不支持:比如,method为post,但是servle没有实现doPost的方法,就会报405错误。
解释405错误是如何报出来的
五.空指针和NumberFormatException
都是因为传入的参数为空导致
六.500
服务器内部错误,报这个错就难搞了,希望你没有,哈哈哈
七.中文编码出错
tomcat8之后:
只针对post方法:request.setCharacterEncoding("UTF-8");
放在第一行执行哦
tomcat8之前:
(1.如果是post传递方法:
request.setCharacterEncoding("UTF-8");
(2.如果是get传递方法
1.先将数据转换成字节数组
String name = request.getParameter("name");
byte[] by = name.getBytes("ISO-8859-1");
2.将字节数组按照设定的编码格式转成成字符串
name = new String(by,"UTF-8");