发布时间:2023-05-11 文章分类:WEB开发, 电脑百科 投稿人:赵颖 字号: 默认 | | 超大 打印

目录

一.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之前:


servlet交互过程图详解,servlet的常见问题,创建web项目(一)

(使用jdk8版本尽量不要使用tomcat9及以上版本的tomcat,版本不匹配的问题)

一.B/S模式和C/S模式

C/S:客户端服务器端结构模式

优点:充分利用客户端机器资源,减轻服务器负荷。(将一部分安全性不高的计算机存储任务安装在客户端,不需要将所有的计算和资源放在服务器上,减轻服务器的压力)

缺点:占用客户端内存,需要安装升级,维护成本较高

B/S:浏览器服务器模结构模式

优点:所有数据全部部署在服务器上,安全性高,升级维护成本低。客户端不需要安装。

缺点:服务器负荷重,需要服务器和客户端浏览器频繁交互,产生网络负荷。

B/S结构图:

servlet交互过程图详解,servlet的常见问题,创建web项目(一)

二.创建web项目

servlet交互过程图详解,servlet的常见问题,创建web项目(一)

servlet交互过程图详解,servlet的常见问题,创建web项目(一)

servlet交互过程图详解,servlet的常见问题,创建web项目(一)

 servlet交互过程图详解,servlet的常见问题,创建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>

servlet交互过程图详解,servlet的常见问题,创建web项目(一)

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交互过程图详解,servlet的常见问题,创建web项目(一)

servlet交互过程图详解,servlet的常见问题,创建web项目(一)

 四.Servlet项目中常见的问题

一.当创建web项目时,没有勾选Java EE时,如何添加web

servlet交互过程图详解,servlet的常见问题,创建web项目(一)servlet交互过程图详解,servlet的常见问题,创建web项目(一)

servlet交互过程图详解,servlet的常见问题,创建web项目(一)

 servlet交互过程图详解,servlet的常见问题,创建web项目(一)

 二.在web文件中导入jar

在web-inf中创建lib,其中的类库只能被改模块使用,其他模块不能使用

servlet交互过程图详解,servlet的常见问题,创建web项目(一)

如果已经在项目的目录下创建了lib:

servlet交互过程图详解,servlet的常见问题,创建web项目(一)

 servlet交互过程图详解,servlet的常见问题,创建web项目(一)

 三.404

访问路径不对,检查网址

设置默认路径方式一:

servlet交互过程图详解,servlet的常见问题,创建web项目(一)

servlet交互过程图详解,servlet的常见问题,创建web项目(一)

 设置默认路径方式二:

在xml配置文件设置以下内容:

servlet交互过程图详解,servlet的常见问题,创建web项目(一)

设置默认打开的页面名

四.405

405是值请求方法不支持:比如,method为post,但是servle没有实现doPost的方法,就会报405错误。

解释405错误是如何报出来的

 五.空指针和NumberFormatException

都是因为传入的参数为空导致

六.500

服务器内部错误,报这个错就难搞了,希望你没有,哈哈哈

七.中文编码出错

tomcat8之后

        只针对post方法:request.setCharacterEncoding("UTF-8");

 放在第一行执行哦

servlet交互过程图详解,servlet的常见问题,创建web项目(一)

 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");

servlet交互过程图详解,servlet的常见问题,创建web项目(一)