servlet
servlet是运行在服务器上的小程序,servlet本质上是一个java类,servlet是实现前端页面请求与后端服务的中间枢纽。
创建servlet
创建一个java类,继承HTTservlet类
重写doGet()和doPost()方法
servlet生命周期
- 初始化阶段,servle第一次启动时调用init()方法
- 响应请求阶段,servic()方法,根据提交方式选择执行doPost()方法或doGet()方法
- 终止阶段,webreload或Tomcat服务器关闭的时候调用destroy()方法
servlet九大内置对象
jsp对象 | 获取方式 |
---|---|
out | response.getWriter |
request | service方法中的request参数 |
response | service方法中的response参数 |
session | request.getSession() |
application | getServletContext |
exception | throwAble |
page | this |
pageContext | PageContext |
Config | getServletConfig |
servlet路径跳转
访问servlet
- 通过相对路径访问:“myservlet”,相对路径前端不能有“/”,如果不在目标不在当前路径下需先退出当前路径,路径前加双点斜杠退出到上一级。
页面跳转规划不当可能会产生路径拼接错误 - 通过绝对路径访问:resquest.getContextPath+“/myservlet”
action = "myservlet" //访问当前路径下的servlet
action = "../myservlet" //访问当前路径上一级下的servlet
action = resquest.getContextPath“/myservlet" //访问绝对路径下的servlet
接受访问
通过配置web.xml:<servlet>&<servlet-mapping>
通过使用注解@WebServlet
<servlet>
<servlet-name>myservlet</servlet-name>
<servlet-class>servlet.myServlet</servlet-class><!--接受访问的servlet类所在位置-->
</servlet>
<servlet-mapping>
<servlet-name>myservlet</servlet-name>
<url-pattern>/myservlet</url-pattern><!--访问servlet的url-->
</servlet-mapping>
<url-pattern>/myservlet</url-pattern><!--接受从项目根目录发出的访问请求-->
<url-pattern>/page/myservlet</url-pattern><!--接受从项目根目录下的page目录下发出的访问请求-->
@WebServlet(name = "mysl" , url-pattern = "/myservlet")
public class myservlet extends HttpServlet{...}
//注解写在接受访问的servlet类上
//url-pattern访问原理同web.xml文件
不论是写相对路径还是绝对路径,用注解还是在web.xml中配置,一定要保证访问路径的一致性,否则将访问失败。