Servlet
-
如何使用
-
创建类,并且继承 HttpServlet
-
覆写doGet()和doPost()方法
-
在web.xml里面配置映射
<servlet> <servlet-name>test</servlet-name> <servlet-class>com.tredu.demo.TestServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>test</servlet-name> <url-pattern>/test</url-pattern> </servlet-mapping>
load-on-startup = 1 : 当服务启动的时候,就是实例化该servlet
-
-
生命周期
-
请求发送:
-
先执行构造方法,用于实例化servlet
-
调用 init()做初始化操作
-
调用service() – doget(),dopost()方法处理逻辑操作和数据交换
-
响应
-
当服务停止,执行destroy()方法进行资源释放和销毁
-
-
-
Request
-
请求
-
get
-
请求参数在请求行中,在url后。
-
请求的url长度有限制的
-
不太安全
-
-
post
-
请求参数在请求体中
-
请求的url长度没有限制的
-
相对安全
-
-
-
req.getParameter(‘username’)
-
req.setCharacterEncoding(“utf-8”)
-
-
response
-
响应状态码
-
1xx:服务器就收客户端消息,但没有接受完成,等待一段时间后,发送1xx多状态码
-
2xx:成功。代表:200
-
3xx:重定向。代表:302(重定向),304(访问缓存)
-
4xx:客户端错误。
-
代表:404(请求路径没有对应的资源)
-
代表:405:请求方式没有对应的doXxx方法
-
-
5xx:服务器端错误。代表:500(服务器内部出现异常)
-
-
resp.setContentType(“text/html;charset=utf-8”)去1
-
resp.setStatus(302) 设置状态码
-
resp.setHeader(“Location”,”https://www.baidu.com”)
-
重定向 : resp.sentRedirect(”https://www.baidu.com”)
-
-
转发和重定向的特点
-
重定向的特点 redirect:
-
地址栏发生变化
-
重定向可以访问其他站点(服务器)的资源
-
重定向是两次请求。不能使用request对象来共享数据
-
-
转发的特点 forward:
-
转发地址栏路径不变
-
转发只能访问当前服务器下的资源
-
转发是一次请求,可以使用request对象来共享数据
-
-
-
ServletContext
-
最大作用域,所有请求共享的数据
-
通过request对象获取 request.getServletContext()
-
通过HttpServlet获取 this.getServletContext()
-
-
-
Servlet底层原理
-
配合生命周期使用
-
init方法
-
service() —-判断你的请求方式
-
doGet
-
doPost
-
-
响应
-
销毁
-
-
初始化数据
-
xml配置方式
<servlet> <servlet-name>_07_InitParam</servlet-name> <servlet-class>com.tledu.zrz.servlet._07_InitParam</servlet-class> <!-- 这种参数,只能让当前这一个Servlet去使用,并且获取方式通过ServletConfig对象 --> <init-param> <param-name>name</param-name> <param-value>张三</param-value> </init-param> </servlet>
-
注释方式
@WebServlet(name = "test1", value = "/test1",loadOnStartup = 1,initParams = { @WebInitParam(name = "name", value = "张三") })
-
-
Jsp 三种语法
-
<%! %>类体中
-
<% %>方法体中
-
<%= %>向页面输出
-
导入包:Import = :java.util.*
-
错误页面 errorPage = “xxxx.jsp”跳转的页面需要设置isErrorPage属性,isErrorPage可以设置true/false,表示此页面是否为错误页面
-
合并页面(一般)
-
<%@include file=“fileURL%>静态包含其他页面,两个页面合并为一个页面,只生成一个class文件
-
<jsp:include page=“fileURL” flush="true"> 态包含,两个页面生成两个class , 动态调用
-
-
-
九大内置对象
-
pageContext
-
request :一次请求访问的多个资源(转发)
-
response : 响应对象
-
page
-
out
-
exception
-
session : 一次会话的多个请求间
-
application – 最大的数据共享域
-
config
-