javaWeb21/11/4
Servlet
ServletContext
1.数据共享
2.获取初始化参数
<context-param>
<param-name>url</param-name>
<param-value>jdbc:mysql://localhost:3306/mybatis</param-value>
</context-param>
ServletContext s = this.getServletContext();
String url = s.getInitParameter("url");//获取初始化参数
resp.getWriter().print(url);
3.请求转发
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
ServletContext s = this.getServletContext();
s.getRequestDispatcher("/get").forward(req,resp);
System.out.println("进入了ServletDemo03");
}
<servlet>
<servlet-name>sd3</servlet-name>
<servlet-class>com.wenping.servlet.ServletDemo03</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>sd3</servlet-name>
<url-pattern>/sd3</url-pattern>
</servlet-mapping>
输入sd3的地址,ServletDemo03请求转发到get


请求转发和重定向的区别
4.读取资源文件
Properties类
- 在java目录下新建properties
- 在resources目录下新建properties
- 发现:都被打包到了同一个路径下,classes,我们俗称这个路径为classpath
- 思路:需要一个文件流
1)编写资源文件,放在resources下
username=wp
password=297999
2)
//要找到target下的res.properties写入
InputStream resourceAsStream = this.getServletContext().getResourceAsStream("/WEB-INF/classes/res.properties");
Properties prop = new Properties();
prop.load(resourceAsStream);
String user = prop.getProperty("username");
String pwd = prop.getProperty("password");
resp.getWriter().print(user+":"+pwd);
3)效果

HttpServletResponse
如果要给客户端响应一些,找HttpServletResponse
web服务器接收客户端的http请求,针对这个请求,分别创建一个代表请求的HttpServletRequest对象,代表相应的HttpServletResponse
1.分类
- 负责向浏览器发送数据的方法
ServletOutputStream getOutputStream() throws IOException;
PrintWriter getWriter() throws IOException;
- 负责向浏览器发送响应头的方法
void setCharacterEncoding(String var1);
void setContentLength(int var1);
void setContentLengthLong(long var1);
void setContentType(String var1);
- 相应的状态码
int SC_OK = 200;
int SC_MULTIPLE_CHOICES = 300;
int SC_NOT_FOUND = 404;
int SC_INTERNAL_SERVER_ERROR = 500;
int SC_BAD_GATEWAY = 502;

浙公网安备 33010602011771号