fanjialong hai 2 semanas
pai
achega
a94051ac0f

+ 29 - 0
http-servlet-demo/.gitignore

@@ -0,0 +1,29 @@
+### IntelliJ IDEA ###
+out/
+!**/src/main/**/out/
+!**/src/test/**/out/
+
+### Eclipse ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+bin/
+!**/src/main/**/bin/
+!**/src/test/**/bin/
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+
+### VS Code ###
+.vscode/
+
+### Mac OS ###
+.DS_Store

+ 8 - 0
http-servlet-demo/.idea/.gitignore

@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml

+ 13 - 0
http-servlet-demo/.idea/artifacts/http_servlet_demo_war_exploded.xml

@@ -0,0 +1,13 @@
+<component name="ArtifactManager">
+  <artifact type="exploded-war" name="http-servlet-demo:war exploded">
+    <output-path>$PROJECT_DIR$/out/artifacts/http_servlet_demo_war_exploded</output-path>
+    <root id="root">
+      <element id="javaee-facet-resources" facet="http-servlet-demo/web/Web" />
+      <element id="directory" name="WEB-INF">
+        <element id="directory" name="classes">
+          <element id="module-output" name="http-servlet-demo" />
+        </element>
+      </element>
+    </root>
+  </artifact>
+</component>

+ 10 - 0
http-servlet-demo/.idea/libraries/lib.xml

@@ -0,0 +1,10 @@
+<component name="libraryTable">
+  <library name="lib">
+    <CLASSES>
+      <root url="file://$PROJECT_DIR$/web/WEB-INF/lib" />
+    </CLASSES>
+    <JAVADOC />
+    <SOURCES />
+    <jarDirectory url="file://$PROJECT_DIR$/web/WEB-INF/lib" recursive="false" />
+  </library>
+</component>

+ 6 - 0
http-servlet-demo/.idea/misc.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
+    <output url="file://$PROJECT_DIR$/out" />
+  </component>
+</project>

+ 8 - 0
http-servlet-demo/.idea/modules.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ProjectModuleManager">
+    <modules>
+      <module fileurl="file://$PROJECT_DIR$/http-servlet-demo.iml" filepath="$PROJECT_DIR$/http-servlet-demo.iml" />
+    </modules>
+  </component>
+</project>

+ 6 - 0
http-servlet-demo/.idea/vcs.xml

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="$PROJECT_DIR$/.." vcs="Git" />
+  </component>
+</project>

+ 25 - 0
http-servlet-demo/http-servlet-demo.iml

@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="JAVA_MODULE" version="4">
+  <component name="FacetManager">
+    <facet type="web" name="Web">
+      <configuration>
+        <descriptors>
+          <deploymentDescriptor name="web.xml" url="file://$MODULE_DIR$/web/WEB-INF/web.xml" />
+        </descriptors>
+        <webroots>
+          <root url="file://$MODULE_DIR$/web" relative="/" />
+        </webroots>
+      </configuration>
+    </facet>
+  </component>
+  <component name="NewModuleRootManager" inherit-compiler-output="true">
+    <exclude-output />
+    <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="library" scope="PROVIDED" name="Tomcat 8.5.511" level="application_server_libraries" />
+    <orderEntry type="library" name="lib" level="project" />
+  </component>
+</module>

+ 50 - 0
http-servlet-demo/src/com/sf/domain/Account.java

@@ -0,0 +1,50 @@
+package com.sf.domain;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class Account {
+    private  String username;
+    private String password;
+
+    public Account(String username, String password) {
+        this.username = username;
+        this.password = password;
+    }
+
+    public String getUsername() {
+        return username;
+    }
+
+    public void setUsername(String username) {
+        this.username = username;
+    }
+
+    public String getPassword() {
+        return password;
+    }
+
+    public void setPassword(String password) {
+        this.password = password;
+    }
+
+    public static List<Account> account = new ArrayList<>();
+
+    /**
+     * 在静态代码块中创建3个account 保存到accounts
+     * 后续创建LoginServlet   接受/login 请求
+     * 前端会传递两个参数一个username  一个password;
+     *
+     *
+     * 如果前端传递账号或者密码为空 打印账号和密码不能为空
+     * 如果账号不存在就打印账号不存在
+     * 如果密码不匹配就打印密码错误
+     * 判断传递账号是否和集合中账相同并且密码是否相同
+     */
+    static{
+        account.add(new Account("admin","123"));
+        account.add(new Account("zhangsan","123"));
+        account.add(new Account("lisi","123"));
+    }
+
+}

+ 63 - 0
http-servlet-demo/src/com/sf/domain/User.java

@@ -0,0 +1,63 @@
+package com.sf.domain;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+public class User {
+    private Long id;
+    private String name;
+    private Integer age;
+    private String[] hobby;
+
+    public User(Long id, String name, Integer age, String[] hobby) {
+        this.id = id;
+        this.name = name;
+        this.age = age;
+        this.hobby = hobby;
+    }
+
+    @Override
+    public String toString() {
+        return "User{" +
+                "id=" + id +
+                ", name='" + name + '\'' +
+                ", age=" + age +
+                ", hobby=" + Arrays.toString(hobby) +
+                '}';
+    }
+
+    public static List<User> datas = new ArrayList<>();
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Integer getAge() {
+        return age;
+    }
+
+    public void setAge(Integer age) {
+        this.age = age;
+    }
+
+    public String[] getHobby() {
+        return hobby;
+    }
+
+    public void setHobby(String[] hobby) {
+        this.hobby = hobby;
+    }
+}

+ 68 - 0
http-servlet-demo/src/com/sf/util/JsonResult.java

@@ -0,0 +1,68 @@
+package com.sf.util;
+
+public class JsonResult {
+    private boolean success;
+    private String msg;
+    private Object data;
+
+    public JsonResult() {
+    }
+
+    public JsonResult(boolean success, String msg, Object data) {
+        this.success = success;
+        this.msg = msg;
+        this.data = data;
+    }
+
+    /**
+     * 获取
+     * @return success
+     */
+    public boolean isSuccess() {
+        return success;
+    }
+
+    /**
+     * 设置
+     * @param success
+     */
+    public void setSuccess(boolean success) {
+        this.success = success;
+    }
+
+    /**
+     * 获取
+     * @return msg
+     */
+    public String getMsg() {
+        return msg;
+    }
+
+    /**
+     * 设置
+     * @param msg
+     */
+    public void setMsg(String msg) {
+        this.msg = msg;
+    }
+
+    /**
+     * 获取
+     * @return data
+     */
+    public Object getData() {
+        return data;
+    }
+
+    /**
+     * 设置
+     * @param data
+     */
+    public void setData(Object data) {
+        this.data = data;
+    }
+
+    public String toString() {
+        return "JsonResult{success = " + success + ", msg = " + msg + ", data = " + data + "}";
+    }
+}

+ 44 - 0
http-servlet-demo/src/com/sf/web/servlet/Hello1Servlet.java

@@ -0,0 +1,44 @@
+package com.sf.web.servlet;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
+/**
+ * 一个类继承HttpServlet 和实现Servlet  都可以让我们当前这个类变成Servlet 类
+ * 区别 实现Servlet 接口就需要实现它里面的5个方法 但是实际开发我们可能就只会用到service
+ * 方法其他方法是用不到的
+ *
+ * 继承HttpServlet  你需要用到什么方法就重写什么方法
+ *
+ */
+public class Hello1Servlet extends HttpServlet {
+
+
+    /**
+     * HttpServletRequest req        请求对象
+     *
+     * 主要负责接受请求请求
+     *
+     * HttpServletResponse resp      响应对象
+     *
+     * 主要负责给浏览器进行数据响应
+     *
+     * 对象.方法(实参)
+     * 方法(参数,参数)
+     * 这连个参数对象是不需要我们去创建封装数据
+     *
+     * service : tomcat 帮我们调用
+     * service 方法的参数也不需要我们来传递, tomcat 会帮我们进行传递我们只需要使用就可以了
+     *
+     *
+     *
+     */
+
+    @Override
+    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
+        System.out.println("访问了当前的servlet");
+    }
+}

+ 58 - 0
http-servlet-demo/src/com/sf/web/servlet/HelloAnnoServlet.java

@@ -0,0 +1,58 @@
+package com.sf.web.servlet;
+
+import javax.servlet.*;
+import javax.servlet.annotation.WebServlet;
+import java.io.IOException;
+
+/**
+ * 访问/hello1 会找到  -> HelloAnnoServlet  执行service 方法
+ *
+ * 注解和xml 配置如何选择
+ *
+ * 如果是我们自己创建的类我们一般使用注解方式进行配置,因为这种方式更加简洁和方便
+ * 如果这个类不是我们提供的而是第三方框架提供的类,我们没有办法往别人的框架中贴注解,就需要
+ * 使用xml 方式进行配置
+ *
+ */
+//@WebServlet(value = "/hello1",loadOnStartup = 1)
+public class HelloAnnoServlet implements Servlet {
+    private ServletConfig servletConfig;
+    public HelloAnnoServlet() {
+
+    }
+
+    /**
+     *  在创建Servlet 的时候就会调用init 方法
+     */
+    @Override
+    public void init(ServletConfig servletConfig) throws ServletException {
+        this.servletConfig = servletConfig;
+        System.out.println("初始化");
+    }
+
+    @Override
+    public ServletConfig getServletConfig() {
+        return servletConfig;
+    }
+
+    @Override
+    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
+        ServletConfig servletConfig = this.getServletConfig();
+        System.out.println(servletConfig.getInitParameter("encoding"));
+        System.out.println("访问了service");
+
+    }
+
+    @Override
+    public String getServletInfo() {
+        return null;
+    }
+
+    /**
+     * 在销毁的时候的就会调用destroy
+     */
+    @Override
+    public void destroy() {
+        System.out.println("销毁操作");
+    }
+}

+ 41 - 0
http-servlet-demo/src/com/sf/web/servlet/HelloServlet.java

@@ -0,0 +1,41 @@
+package com.sf.web.servlet;
+
+import javax.servlet.*;
+import java.io.IOException;
+
+// 在访问/config 的时候, 如果编码是encoding=utf8  如果是gbk
+public class HelloServlet implements Servlet {
+    @Override
+    public void init(ServletConfig servletConfig) throws ServletException {
+
+    }
+
+    @Override
+    public ServletConfig getServletConfig() {
+        return null;
+    }
+
+    /**
+     *  这个service 方法在浏览器访问服务器的时候就会执行
+     *  service 方法
+     *
+     *  servlet 创建完以后还需要进行配置
+     *  浏览器发送请求路径可能有很多, 你这个servlet 是处理什么请求的呢?
+     *
+     *  必须要通过配置信息, 告诉服务器哪一个路径对应着哪一个servlet
+     */
+    @Override
+    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
+        System.out.println("欢迎使用servlet");
+    }
+
+    @Override
+    public String getServletInfo() {
+        return null;
+    }
+
+    @Override
+    public void destroy() {
+
+    }
+}

+ 59 - 0
http-servlet-demo/src/com/sf/web/servlet/LoginServlet.java

@@ -0,0 +1,59 @@
+package com.sf.web.servlet;
+
+import com.sf.domain.Account;
+
+import javax.servlet.ServletException;
+import javax.servlet.annotation.WebServlet;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.List;
+
+@WebServlet("/login")
+public class LoginServlet extends HttpServlet {
+
+    @Override
+    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
+        // 处理post 请求编码
+        req.setCharacterEncoding("utf-8");
+        // 接受前台传递过来账号和密码
+        String username = req.getParameter("username");
+        String password = req.getParameter("password");
+        System.out.println(username);
+        System.out.println(password);
+        if(username == null || password == null){
+            System.out.println("账号和密码不能为空");
+            return;
+        }
+        // 和集合当中账号和密码进行比较
+        List<Account> account = Account.account;
+        boolean usernameFlag = false;
+        // 判断账号是否存在
+        for (Account account1 : account) {
+            if(account1.getUsername().equals(username)){
+                usernameFlag = true;
+                break;
+            }
+        }
+        if(!usernameFlag){
+            System.out.println("账号不存在");
+            return;
+        }
+
+        //判断密码是否一致
+        boolean passwordFlag = false;
+        for (Account account1 : account) {
+            if(account1.getUsername().equals(username) && account1.getPassword().equals(password)){
+                passwordFlag = true;
+                break;
+            }
+        }
+
+        if(passwordFlag){
+            System.out.println("登录成功");
+        }else{
+            System.out.println("登录失败");
+        }
+    }
+}

+ 60 - 0
http-servlet-demo/src/com/sf/web/servlet/MyRequestServlet.java

@@ -0,0 +1,60 @@
+package com.sf.web.servlet;
+
+import javax.servlet.ServletException;
+import javax.servlet.annotation.WebServlet;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.Enumeration;
+import java.util.Map;
+
+@WebServlet("/request/*")
+public class MyRequestServlet extends HttpServlet {
+
+
+
+
+
+
+    /**
+     * http://localhost:8080/request
+     * 我希望访问
+     * /request/order的时候在控制台当中打印访问订单信息
+     * /request/product 我希望看到访问商品信息
+     */
+
+    @Override
+    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
+//        System.out.println("请求方式:"+req.getMethod());
+//        System.out.println("资源标识符:"+ req.getRequestURI());
+//        System.out.println("请求url:"+ req.getRequestURL());
+//        System.out.println("协议信息:"+req.getProtocol());
+//        System.out.println("上下文路径:"+req.getContextPath());
+//        String url = req.getRequestURI();
+//        if(url.contains("/order")){
+//            System.out.println("访问订单信息");
+//        }else if(url.contains("/product")){
+//            System.out.println("访问商品信息");
+//        }else{
+//            System.out.println("访问其他的信息");
+//        }
+
+//        System.out.println(req.getHeader("name"));
+        System.out.println("根据key 获取参数值"+req.getParameter("name"));
+        for (String hobby : req.getParameterValues("hobby")) {
+            System.out.println("爱好信息:"+ hobby);
+        }
+
+        // 获取参数名
+        Enumeration<String> en = req.getParameterNames();
+        while (en.hasMoreElements()){
+            System.out.println(en.nextElement());
+        }
+        // 把参数信息放到map 中
+        Map<String, String[]> map = req.getParameterMap();
+        for (Map.Entry<String, String[]> stringEntry : map.entrySet()) {
+            System.out.println(stringEntry.getKey() +"-"+ stringEntry.getValue()[0]);
+        }
+    }
+}

+ 34 - 0
http-servlet-demo/src/com/sf/web/servlet/MyResponseServlet.java

@@ -0,0 +1,34 @@
+package com.sf.web.servlet;
+
+import com.alibaba.fastjson.JSON;
+import com.sf.util.JsonResult;
+
+import javax.servlet.ServletException;
+import javax.servlet.annotation.WebServlet;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.PrintWriter;
+
+@WebServlet("/response")
+public class MyResponseServlet  extends HttpServlet {
+
+    @Override
+    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
+        // 希望使用响应对象给浏览器响应数据
+        // 如果你的响应是一个文本内容字符串就使用getWriter
+//        resp.setCharacterEncoding("utf-8");
+        /**
+         * html: text/html;charset=utf-8
+         * json: application/json;charset=utf-8
+         */
+        // 设置数据响应格式和编码格式
+        resp.setContentType("application/json;charset=utf-8");
+        // {success: true,msg: 操作成功,data: xxx}
+        // java -> json    jackson   fastjson
+        JsonResult result = new JsonResult(true,"操作成功",null);
+        PrintWriter writer = resp.getWriter();
+        writer.write(JSON.toJSONString(result));
+    }
+}

+ 47 - 0
http-servlet-demo/src/com/sf/web/servlet/MyServletConfigSerlvet.java

@@ -0,0 +1,47 @@
+package com.sf.web.servlet;
+
+import javax.servlet.*;
+import java.io.IOException;
+
+/**
+ * 需要把当前这个类交给tomcat 去创建  使用xml 方式配置
+ * / config  -> 当前servlet
+ *
+ * 会在配置文件当中配置一个编码 utf-8 编码或者gbk 编码
+ * 然后我希望拿到配置文件配置信息  , 如果是utf-8 打印utf8  如果是gbk 就打印gbk
+ */
+public class MyServletConfigSerlvet implements Servlet {
+
+    // tomcat 启动的时候就把web.xml 当中配置信息回封装到ServletConfig这个类中
+    // 而且我们在调用初始化方法时候, 他会把servletConfig 的信息设置到init 字段中
+//    private String encoding = "";
+    private ServletConfig servletConfig;
+    @Override
+    public void init(ServletConfig servletConfig) throws ServletException {
+//        encoding = servletConfig.getInitParameter("encoding");
+        this.servletConfig = servletConfig;
+    }
+
+    @Override
+    public ServletConfig getServletConfig() {
+        return servletConfig;
+    }
+
+    @Override
+    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
+//        System.out.println("当前使用编码是什么:"+encoding);
+        ServletConfig servletConfig = getServletConfig();
+        String encoding = servletConfig.getInitParameter("encoding");
+        System.out.println(encoding);
+    }
+
+    @Override
+    public String getServletInfo() {
+        return null;
+    }
+
+    @Override
+    public void destroy() {
+
+    }
+}

+ 82 - 0
http-servlet-demo/src/com/sf/web/servlet/UserServlet.java

@@ -0,0 +1,82 @@
+package com.sf.web.servlet;
+
+
+import com.sf.domain.User;
+
+import javax.servlet.ServletException;
+import javax.servlet.annotation.WebServlet;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.List;
+
+@WebServlet("/user/*")
+public class UserServlet extends HttpServlet {
+    /**
+     * 定义一个UserServlet  接受/user/add的请求
+     *
+     * 定义一个User的javaBean的类  里面有id  name  age  和一个静态的List<User> datas
+     * 在service 中接受前端传递过来的id  ,name , age 参数信息封装到user 中然后添加到datas 集合中
+     *
+     * 如果id 在集合当中已经存在了就打印id 已存在
+     * 如果name 已存在了就打印name 不能重复
+     * user中添加一个hobby[] 字段  在传参的时候也把这个传递进去进行封装
+     *
+     * 后续查看数据访问/user/list ,查看集合当中数据
+     *
+     */
+    @Override
+    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
+        /**
+         * 接受请求参数
+         */
+        String requestURI = req.getRequestURI();
+        if(requestURI.contains("/add")){
+            add(req,resp);
+        }else if(requestURI.contains("/list")){
+            list(req,resp);
+        }
+    }
+
+    private void list(HttpServletRequest req, HttpServletResponse resp) {
+        System.out.println(User.datas);
+    }
+
+    private void add(HttpServletRequest req, HttpServletResponse resp) {
+        /**
+         * 接受请求参数
+         */
+        String idStr = req.getParameter("id");
+        String name = req.getParameter("name");
+        String ageStr = req.getParameter("age");
+        String[] hobbies = req.getParameterValues("hobby");
+
+        List<User> datas = User.datas;
+        boolean idFlag = false;
+        boolean nameFlag =false;
+        for (User data : datas) {
+            if(data.getId().equals(idStr)){
+                idFlag = true;
+            }
+
+            if(data.getName().equals(name)){
+                nameFlag = true;
+            }
+        }
+        if(idFlag){
+            System.out.println("id已经存在");
+            return;
+        }
+        if(nameFlag){
+            System.out.println("name已经存在了");
+            return;
+        }
+        User user = new User(Long.parseLong(idStr),name,Integer.parseInt(ageStr),hobbies);
+        // 把用户添加到集合中
+        User.datas.add(user);
+        System.out.println(User.datas);
+    }
+
+
+}

BIN=BIN
http-servlet-demo/web/WEB-INF/lib/fastjson-1.2.58.jar


+ 44 - 0
http-servlet-demo/web/WEB-INF/web.xml

@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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">
+    <servlet>
+        <servlet-name>helloServlet</servlet-name>
+        <servlet-class>com.sf.web.servlet.HelloAnnoServlet</servlet-class>
+    </servlet>
+    <servlet-mapping>
+        <servlet-name>helloServlet</servlet-name>
+        <url-pattern>/hello</url-pattern>
+    </servlet-mapping>
+
+
+    <servlet>
+        <servlet-name>myServletConfigSerlvet</servlet-name>
+        <servlet-class>com.sf.web.servlet.MyServletConfigSerlvet</servlet-class>
+        <init-param>
+            <param-name>encoding</param-name>
+            <param-value>utf8</param-value>
+        </init-param>
+    </servlet>
+
+    <servlet-mapping>
+        <servlet-name>myServletConfigSerlvet</servlet-name>
+        <url-pattern>/config</url-pattern>
+    </servlet-mapping>
+
+
+<!--    <servlet>-->
+<!--        <servlet-name>hello1Servlet</servlet-name>-->
+<!--        <servlet-class>com.sf.web.servlet.Hello1Servlet</servlet-class>-->
+<!--    </servlet>-->
+
+<!--    <servlet-mapping>-->
+<!--        <servlet-name>hello1Servlet</servlet-name>-->
+<!--        <url-pattern>/*</url-pattern>-->
+<!--    </servlet-mapping>-->
+<!--    <servlet-mapping>-->
+<!--        <servlet-name>hello1Servlet</servlet-name>-->
+<!--        <url-pattern>/hello3</url-pattern>-->
+<!--    </servlet-mapping>-->
+</web-app>

+ 27 - 0
http-servlet-demo/web/index.html

@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  <meta charset="UTF-8">
+  <title>Title</title>
+</head>
+<body>
+<!--login是一个servlet-->
+<h2>GET提交</h2>
+<form action="login" method="get">
+  用户名:
+  <input type="text" name="username"><br/>
+  密码:
+  <input type="password" name="pwd"><br/>
+  <input type="submit" value="登录">
+</form>
+<hr>
+<h2>POST提交</h2>
+<form action="login" method="post">
+  用户名:
+  <input type="text" name="username"><br/>
+  密码:
+  <input type="password" name="password"><br/>
+  <input type="submit" value="登录">
+</form>
+</body>
+</html>

+ 10 - 0
http-servlet-demo/web/index1.html

@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <title>Title</title>
+</head>
+<body>
+我是html 界面
+</body>
+</html>