• java-web中的web.xml中的servlet和servlet-mapping标签,及网页处理流程


    servlet的标签解释:servlet-mapping是一个映射标签,将url映射到servlet-class里面指定的具体类中,而两者servlet-name名字必须相同,servlet-mapping和servlet-class两者之间是通过

    servlet-name连接的,只用名字相同映射才能到达具体类,否则映射失败,url请求后台的java类就会无法处理。

    web.xml里面

    1 <servlet>
    2 <servlet-name>a</servlet-name>      <--! 里面随便写只要保持和servlet-mapping标签里的servlet-name里的值一样就行 -->
    3 <servlet-class>com.nan.LoginServlet</servlet-class>  <--! 要映射的具体包名和类名   所以这里填写  包名+类名 -->
    4 </servlet>
    5 <servlet>
    6 <servlet-name>a</servlet-name>    <--! 里面的值随便写 只要保持和servlet里面的 servlet-name标签里的值一样即可   因为servlet-name相当于servlet和servlet-mapping标签之间连接桥梁 -->
    7 <url-pattern>/qq</url-pattern>    <--! web.xml 的 / 表示的是http://localhost:8080/ + 工程名 -->
    8 </servlet>
    网页访问流程:
    1.首先前端输入url,如:

    请求为:见下图 1.1

    2.此时网页的请求发送到web.xml文件中 注意:前端输入的请求地址必须跟url-pattern相同,否则url-pattern无法捕获url请求

    url-pattern通过servlet-name标签找到这个请求实现的具体类---> servlet-class 里面的 LoginServlet类 进行具体处理 (java代码见下面) 2.2

    3.此时 java后台的Login-Servlet类处理完了请求之后,将返回在结果送入web.xml,再通过映射,从servlet-class映射到url-pattern将响应结果发送到前端页面 响应结果见下面截图 3.3

    1.1
    2.2
     1 package com.nan;
     2 
     3 import java.io.IOException;
     4 
     5 import javax.servlet.ServletException;
     6 import javax.servlet.http.HttpServlet;
     7 import javax.servlet.http.HttpServletRequest;
     8 import javax.servlet.http.HttpServletResponse;
     9 
    10 public class LoginServlet extends HttpServlet{
    11     @Override
    12     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    13         String username= req.getParameter("username");
    14         String password = req.getParameter("password");
    15         resp.getWriter().print("用户名是:"+username);
    16         resp.getWriter().print("密码是:"+password);
    17     }
    18     @Override
    19     protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    20         doGet(req, resp);
    21     }
    22 }
    View Code
    3.3

    url-pattern 标签中的值是要在浏览器地址栏中输入的 url,可以自己命名,
    这个 url 将会访问名为 servlet-name 中值的 servlet,两个 servlet-name 标签的值必须相同,、
    因为通过 servlet 标签中的 servlet-name 标签映射到 servlet-class 标签中的值,
    最终访问 servlet-class 标签中的 class。
    还有,web.xml 的 / 表示的是http://localhost:8080/ + 工程名
    而.jsp页面的action,加了/表示绝对路径http://localhost:8080/ ,没有加 / 表示的是相对路径

    <--! 里面随便写只要保持和servlet-mapping标签里的servlet-name里的值一样就行 -->
  • 相关阅读:
    数据结构上篇
    异步编程下篇
    异步编程上篇
    异步编程中篇
    对象与原型对象下篇
    对象与原型对象上篇
    移动端开发
    函数进阶
    二.全局安装需要配置NODE_PATH命令
    一.完全删除VSC
  • 原文地址:https://www.cnblogs.com/nanfengnan/p/14151104.html
Copyright © 2020-2023  润新知