狂神 JavaWeb笔记
1. 基本概念




2. Web服务器



3. Tomcat





# 4. Http

4.3. Http请求

4.4. Http响应

5. Maven
https://github.com/fanjianhai/kuangshen/tree/master/0.IDEA%E5%B8%B8%E7%94%A8%E9%85%8D%E7%BD%AE%E8%AE%B0%E5%BD%95
6. Servlet




6.3. Servlet原理


-
一个 Servlet可以指定多个映射路径
<servlet>
<servlet-name>helloservlet-name>
<servlet-class>com.xiaofan.servlet.HelloServletservlet-class>
servlet>
<servlet-mapping>
<servlet-name>helloservlet-name>
<url-pattern>/hellourl-pattern>
servlet-mapping>
<servlet-mapping>
<servlet-name>helloservlet-name>
<url-pattern>/hello1url-pattern>
servlet-mapping>
<servlet-mapping>
<servlet-name>helloservlet-name>
<url-pattern>/hello2url-pattern>
servlet-mapping>
-
一个Servlet可以指定通用映射路径
<servlet-mapping>
<servlet-name>helloservlet-name>
<url-pattern>/hello/*url-pattern>
servlet-mapping>

注意定义后缀,不用设置前面的路径,默认会匹配上
-
优先级问题
指定了固有的映射路径优先级最高,如果找不到就会走默认的处理
-
共享数据

-
获取初始化参数
String url = this.getServletContext().getInitParameter("url");
<context-param>
<param-name>urlparam-name>
<param-value>www.baidu.comparam-value>
context-param>
-
请求转发
this.getServletContext().getRequestDispatcher("/index").forward(req, resp);

-
读取资源文件Properties
<build>
<resources>
<resource>
<directory>src/main/javadirectory>
<includes>
<include>**/*.propertiesinclude>
<include>**/*.xmlinclude>
includes>
<filtering>falsefiltering>
resource>
<resource>
<directory>src/main/resourcesdirectory>
<includes>
<include>**/*.propertiesinclude>
<include>**/*.xmlinclude>
includes>
<filtering>falsefiltering>
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 {
