JavaWeb学习-ServletAPI
1. servlet的生命周期:实例化、初始化、服务、销毁
在servlet初始化时候设置参数:(与具体的servlet实例相关)
(1)获取config:
ServletConfig config = getServletConfig();
(2)获取初始化参数值:
String parameter = config.getInitParameter(key);
在web.xml中设置参数
<servlet>
<servlet-name>Demo01Servlet</servlet-name>
<servlet-class>com.servlet.Demo01Servlet</servlet-class>
<init-param>
<param-name>hello</param-name>
<param-value>world</param-value>
</init-param>
<init-param>
<param-name>username</param-name>
<param-value>jom</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Demo01Servlet</servlet-name>
<url-pattern>/Demo01</url-pattern>
</servlet-mapping>
或者在servlet.java中设置(使用注解的方式)
@WebServlet(urlPatterns = {"/demo01"},
initParams = {
@WebInitParam(name="hello",value = "world"),
@WebInitParam(name="username",value = "jom")
})
2. ServletContext和<context-param>
通过ServltContext获取配置的上下文参数,与整个应用程序相关的,在任何的servlt中都可以获取到。
ServltContext的作用:(用户可以共享)
1.获取web的上下文路径
String getContextPath();
2.获取全局的参数
String getInitParameter(String name);
Enumeration getInitParameterNames();
3.和域对象相关的
void setAttribute(String name,Onject object);
Object getAttribute(String name);
void removeAttribute(String name);
域对象(域对象就是在不同资源之前来共享数据,保存数据,获取数据)
ServletContext是我们学习的第一个域对象(Servlet共有三个域对象ServletContext、HttpServletRequest、HttpSession)
4. 请求转发的
RequestDispatcher getRequestDispatcher(String path);
在Servlet跳转页面:
4.1请求重定向(你找我借钱,我没有,你自己去找他借钱)
response.sendRedirect("test.jsp");//重定向到test.jsp
1.地址栏会改变,变成重定向到的地址
2.可以跳转到项目内的资源,也可以跳转项目外的资源
3.浏览器向服务器发出两次请求,那么不能使用请求来作为域对象来共享数据。
4.2请求转发(你找我借钱,我没有,我帮你去向他借钱)
request.getRequestDispatcher("test.jsp").forward(request, response);//转发到test.jsp
1.地址栏不会改变
2.只能跳转到项目内的资源,不能跳转项目外的资源。
3.浏览器向服务器发出一次请求,那么可以使用请求作为域对象共享数据。
5.读取web项目的资源文件
String getRealPath(String path);
InputStream getResourceAsStream(String path);
URL getResource(String path);
获取servletcontext的方法:
(1)在初始化方法中:获取servletcontext,获取初始化参数值
ServletContext servletContext = getServletContext();
在web.xml中配置
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
</web-app>
(2)在服务方法中也可以通过request对象获取:
request.getServletContext();
request.getSession().getServletContext(); //通过session获取
获取初始化的值:
String contextConfigLocation = servletContext.getInitParameter("contextConfigLocation");
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!