狂神 JavaWeb笔记
1. 基本概念
2. Web服务器
3. Tomcat
# 4. Http
4.3. Http请求
4.4. Http响应
5. Maven
6. Servlet
6.3. Servlet原理
-
一个 Servlet可以指定多个映射路径
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>com.xiaofan.servlet.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello1</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello2</url-pattern>
</servlet-mapping>
-
一个Servlet可以指定通用映射路径
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello/*</url-pattern>
</servlet-mapping>
注意定义后缀,不用设置前面的路径,默认会匹配上
-
优先级问题
指定了固有的映射路径优先级最高,如果找不到就会走默认的处理
-
共享数据
-
获取初始化参数
String url = this.getServletContext().getInitParameter("url");
<context-param>
<param-name>url</param-name>
<param-value>www.baidu.com</param-value>
</context-param>
-
请求转发
this.getServletContext().getRequestDispatcher("/index").forward(req, resp);
-
读取资源文件Properties
<!--静态资源导出-->
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
// 注意路径的取法
InputStream inputStream = this.getServletContext().getResourceAsStream("/WEB-INF/classes/db.properties");
Properties properties = new Properties();
properties.load(inputStream);
String username = properties.getProperty("username");
String password = properties.getProperty("password");
System.out.println("username:" + username + "\npassword: " + password);
6.4. Response下载文件
public class FileServlet extends HttpServlet {
6.5 验证码的生成
package com.xiaofan.servlet;
import javax.imageio.ImageIO;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.Random;
public class ImageServlet extends HttpServlet {