一、Web层技术概述
二、Servlet技术
1、什么是Servlet?
- 扩展服务器功能的Java类
- 基于Request-Response编程模型
- 通常用来扩展基于web服务器的应用
2、初始化Servlet——init()
(1)init()方法的调用时机
- Servlet被加载和实例化之后
- 容器向其传递Request和Response之前
(2)构造方法—>init方法—>servlet方法—>destroy方法
3、编写service()方法
(1)实现Servlet需要提供的服务功能
- 从Request取得输入数据
- 访问外部资源(文件、数据库)
- 生成Response
(2)继承HttpServlet时,不必覆盖service()
4、(1)
- 完全匹配:
/test/list.do - 目录匹配:
/test/* - 扩展名匹配:
*.do
(2)servlet-mapping的重要规则
- 首先查找完全匹配
- 如果找不到,查找目录匹配
- 如果找不到,查找扩展名匹配
- 如果一个请求匹配多个“目录匹配”,容器选择最长匹配
5、Servlet执行结束
destroy()
- 容器由于内存回收等原因,需要将servlet服务去除时,容器将调用destroy()方法
- 容器将保证在所有的服务请求都执行结束之后调用destroy()方法
6、参数取得
- getParameter():用来取得一个变量的值,当变量具有多个值时,返回第一个
- getParameterValues():返回多个参数值,多用于checkbox等一个变量多个值的取值
7、Servlet implementation class Form
(1)将注册页面拷贝至项目webapp目录下,并改名为index.html
(2)注册页面添加多选框(页面已有多选框的而忽略此步)
(3)注册页面form元素中action地址更改为form
(4)创建Form的servlet类,并将@WebServlet值更改为/form
(5)更改doGet方法、添加request.getParameter()、request.getParameterValues()方法,从前端页面对应name值
(6)将项目放入Tomcat并启动
(7)访问页面、输入数据、点击提交按钮
(8)后端查看数据
8、读取中文参数
(1)以POST方式提交
request.setCharacterEncoding("UTF-8");
(2)以GET方式提交
- Tomcat配置——>server.xml
- URIEncoding="utf-8"
- useBodyEncodingForURI="true"
9、调用其他Web资源的方式
(1)请求转发:forward方式
// 转发:1、页面地址未发生变化,限时跳转之前servlet地址,可隐藏跳转页面真正地址
// 2、请求属于两次,request、response对象为一套
request.getRequestDispatcher("b").forward(request,response);
(2)重定向:sendRedirect方式
// 重定向:1、页面发生变化,显示跳转之后servlet地址
// 2、请求属于两次,request、response对象为两套
response.sendRedirect("b");
三、JSP开发技术



