Java Web笔记
入门
servlet命名规范:
- 包名:全小写,写法:a.b.c
- 类名或接口名:所有单词首字母大写
- 变量名或方法名:从第二个单词开始首字母大写
- 常量名:所有单词的字母都大写,单词之间用”_”分割
实现servlet的三种途径:
- 实现servlet接口
- 继承GenericServlet抽象父类
- 继承HttpServlet父类(最常用)
- Servlet是单例多线程的工作模式
Servlet声明周期的重要方法:
init(一次)、service(多次)、doGet(多次)、doPost(多次)、destroy(一次)
注解:
@WebServlet(); URL Mappings写法:(按照优先级排序)
精确路径匹配:以”/“开头
最长路径匹配:以”/“开头,以” * “结尾
拓展匹配:以” * “开头
默认Servlet:URL Mapping为”/“
根路径:URL Mapping为””
匹配所有地址:URL Mapping为”/*”
loadOnStartup:
- loadOnStartup属性用于标记容器是否在启动的时候加载这个Servlet(即实例化并调用其init()方法);
- 它的值必须是一个整数;
- 如果该元素不存在或者值为负时,则容器会在该Servlet第一次被请求时加载;
- 如果该元素值为0或者大于0时,则容器在启动时就加载并初始化这个Servlet。此时,该元素的值越小,该Servlet的优先级越高,容器启动时就越先加载;当该元素的值相同时,按容器自身策略决定加载顺序。
路径写法
以”/“开头:
在HTML中:”/“代表:
在jsp中:”/“代表:
在Servlet中”/“代表:
- forward方式:http://localhost:8080/Web项目上下文路径
- redirect方式:http://localhost:8080
以”./“开头:代表当前位置(当前文件所在位置),可省略不写
以”../“开头:代表当前位置的上一级
常用对象
HttpServletRequest(请求对象)
getContextPath:获取上下文路径
getServletPath:获取Servlet访问路径
getParameter:获取单值请求参数值,返回值是
String
,若参数不存在,返回值是nullsetCharacterEncoding:处理请求参数中含中文的乱码问题(适用于post请求方式)后getParameter
getParameterValues:获取多值请求参数,返回值是
String[]
,若参数不存在,返回值是null。getRequestDispatcher:获取请求转发器对象,调用转发器对象的forward方法进行请求转发跳转
- 浏览器地址栏地址保持不变(对客户端是透明的,客户端不参与跳转过程)。
- 跳转前后的两个资源位于同一次请求范围内。
- 只能站内跳转(同一个Web应用的资源之间的跳转)。
getAttribute:从请求有效范围获取属性,返回值类型是Object
setAttribute:向请求有效范围存储属性(“key/value”对)
HttpServletResponse(响应对象)
getWriter:获取输出流对象,返回值是PrintWriter
setContentType:设置响应的MIME类型,用于解决响应中含中文的乱码问题
sendRedirect:重定向跳转(redirect)
状态码 302 重定向
- 客户端地址栏地址变为跳转后的新地址(对客户端不透明,客户端参与跳转过程)。
- 跳转前后的两个资源位于不同请求范围内。
- 可以做站外跳转。
- 教材P126
- 教材P93
有效范围(从小到大):
——用于在服务器端保存值
页面有效
请求有效
会话有效
应用有效