2023/7/28 javaWeb复习笔记

一、servlet、JSP和JDBC

HTML、css、JavaScript构建的基础页面属于静态页面,即所有用户的访问结果相同。servlet、JSP、PHP等构建的页面都属于动态资源,动态资源将在客户端通过不同的静态资源进行展示。

1、servlet

(1)概念

存在路径:…tomcat/lib/servlet-api.jar
由tomcat服务器提供可继承类,运行在Java服务端的小程序。**首次请求时创建,服务器关闭时销毁,生命周期由服务器控制。**通常用作控制层的数据接收,数据转发,与页面请求。

(2)任务

获取客户端请求,响应动态资源,向客户端发送数据或重定向服务器请求路径

(2)实现

新建类;
继承HttpServlet类;
重写protected void service(HttpServletRequest req,HttpServletResponse resp)方法;

@WebServlet("/student")
public class StudentServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    }
}

2、JSP

(1)概念

存在路径:…tomcat/lib/jsp-api.jar
由tomcat服务器提供,可以使用java+前端技术开发静态资源的技术。
<% java代码 %>作为jsp脚本而存在。

(2)指定灵活访问路径

<%=request.getContextPath() %>…

3、JDBC

(1)概念

由sun公司开发的用来将Java App连接到数据库的一套接口标准。具体的操作类由具体的数据库jar包来实现。
2023/7/28 javaWeb复习笔记_第1张图片

(2)具体流程

加载驱动
Class.forName(“…Driver”);
获得数据库连接对象
Connection connection = DriverManager.getConnection(url,username,password);
发送sql语句
PreparedStatement preparedStatement = conn.prepareStatement(“select * from tableName”);
执行sql语句
ResultSet resultSet = pst.executeQuery();
int n = pst.executeUpdate();

(3)PreparedStatement和Statement接口的区别

语法
PreparedStatement可以使用预编译的sql再发送其他参数,Statement只能发送一次静态sql。
效率
PreparedStatement使用了sql缓冲区,可以重复使用,Statement是其父类,没有相关概念引入。
安全
PreparedStatement有效防止sql注入。

二、Get和post

1、Get

(1)采用URL请求路径传参,遇到form表单时路径参数失效。
(2)参数显示在地址栏,隐私性较差。
(3)路径数量有限。
(4)所有请求的默认方式
(5)默认解决中文乱码

2、Post

(1)实体内容传参,form数据和路径数据分别被包装成实体。
(2)参数仅显示在network请求详情页面。
(3)实体中的数据量无限制。
(4)需要指定请求method为post才是使用。
(5)解决中文乱码需要request.setCharacterEncoding(“UTF-8”);

3、服务器响应中文乱码解决方案

response.setContextType(“text/html;charset=utf-8”);

三、MVC模式/三层架构

1、MVC

(1)简介

由模型(model)、视图(view)和控制器(controller)搭建平台的软件设计规范。

(2)各模块功能

模型负责对数据库的查询信息和事务设计的修改信息进行统一建模,并在满足javaBean的基础上构建实体类。
视图负责接收控制器的数据,并将数据渲染在客户端,同时处理一些简单的页面响应。
控制器负责接收数据,调用接口处理数据,转发数据以及让**浏览器重新向控制器发送请求(重定向)**等具体复杂的业务流程。

(3)文件结构

2023/7/28 javaWeb复习笔记_第2张图片

2、三层架构

(1)简介

将控制层的业务逻辑转移到service层,将service层的数据库操作转移到dao层,并通过接口调用实现逻辑调用。

(2)各层功能

controller:接收数据,调用接口处理数据,转发数据以及让浏览器重新向控制器发送请求(重定向)
service:处理业务基本流程,可多次调用dao层的方法实现业务逻辑。
dao:负责单一的数据库的添删改查。

(3)文件结构

2023/7/28 javaWeb复习笔记_第3张图片

你可能感兴趣的:(笔记,java,mysql,tomcat)