Novices simply understand the web.xml configuration in Servlet

background:

ecplise+tomcat+servlet

When we were learning servlets, because we didn’t learn the basics well, we couldn’t understand servlets. For example, the author couldn’t understand servlet’s web . , at least you can understand the project from a macro perspective, which can promote the project to a certain extent . The goal of this article is to make it as simple as possible for novices to understand the relationship between front-end requests and the configuration in web.xml .

The overall project introduction link is as follows:

Servlet technology implements the server, and the Android platform acts as the client to implement a personal store_zew1040994588's Blog-CSDN Blog

Login example explanation:

Overall project directory:

Backend login interface demo:

Here we don't pay attention to how the specific code content is written, but only pay attention to its relationship with web.xml!

这里是userLoign.java里面的内容:
package servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.SQLException;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import common.User;
import dao.UserDao;
import net.sf.json.JSONObject;
import utils.JsonObjectWeb;
import utils.JsonResultUtil;


public class userLogin extends HttpServlet {

    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    	//0、解决返回中文乱码问题
		resp.setCharacterEncoding("UTF-8");
		JSONObject web_dict = JsonObjectWeb.getJsonInfoDict(req);
		
    	String username = web_dict.getString("username");
        String password = web_dict.getString("password");
        User user = new User();//创建user对象
        user.setUsername(username);
        user.setPassword(password);
        /*
         * 这里需要查询数据库是否重名,若有重名则不允许插入,返回不同状态码
         * */
        int flag = 0;
        UserDao dao = new UserDao();
        User login_user = null;
        try {
        	login_user = dao.login(username,password);
			if(login_user != null) {
		        int user_id = login_user.id.intValue();
		        JSONObject data_dict = new JSONObject();
		        data_dict.put("user_id", user_id);
			    JSONObject json = JsonResultUtil.getJson(200,data_dict, "登录成功");
			    PrintWriter writer = resp.getWriter();	
			    //这里是返回json
			    writer.print(json);
			    flag = -1;
			}
		} catch (Exception e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
        if (flag == 0) {
            JSONObject json = JsonResultUtil.getJson(1002, "登录失败");
            PrintWriter writer = resp.getWriter();	
            //这里是返回json
            writer.print(json);
        }
        
    }
}

Backend web.xml configuration:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>shop_sys2</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  
  
   <servlet>
    <servlet-name>user_login</servlet-name>
    <servlet-class>servlet.userLogin</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>user_login</servlet-name>
    <!-- 登录 -->
    <url-pattern>/user/login</url-pattern>
  </servlet-mapping>
  
  <servlet>
    <servlet-name>user_register</servlet-name>
    <servlet-class>servlet.userRegister</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>user_register</servlet-name>
    <!-- 注册 -->
    <url-pattern>/user/register</url-pattern>
  </servlet-mapping>
  
    <servlet>
    <servlet-name>user_update_password</servlet-name>
    <servlet-class>servlet.userChange</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>user_update_password</servlet-name>
    <!-- 注册 -->
    <url-pattern>/user/update/password</url-pattern>
  </servlet-mapping>
  
  <servlet>
    <servlet-name>product_view_all</servlet-name>
    <servlet-class>servlet.productView</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>product_view_all</servlet-name>
    <!-- 展示所有商品 -->
    <url-pattern>/product/view/all</url-pattern>
  </servlet-mapping>  
  
  
  <servlet>
    <servlet-name>cart_view</servlet-name>
    <servlet-class>servlet.cartView</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>cart_view</servlet-name>
    <!-- 显示用户购物车 -->
    <url-pattern>/cart/view</url-pattern>
  </servlet-mapping> 
  
   <servlet>
    <servlet-name>product_add_cart</servlet-name>
    <servlet-class>servlet.cartAdd</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>product_add_cart</servlet-name>
    <!-- 添加商品到购物车 -->
    <url-pattern>/product/add/cart</url-pattern>
  </servlet-mapping> 
  
  <servlet>
    <servlet-name>product_delete_cart</servlet-name>
    <servlet-class>servlet.cartDelete</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>product_delete_cart</servlet-name>
    <!-- 将商品从购物车中删除 -->
    <url-pattern>/product/delete/cart</url-pattern>
  </servlet-mapping> 
	
  <servlet>
    <servlet-name>cart_settlement</servlet-name>
    <servlet-class>servlet.cartSettlement</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>cart_settlement</servlet-name>
    <!-- 购物车页面对商品进行结算 -->
    <url-pattern>/cart/settlement</url-pattern>
  </servlet-mapping> 
  
    <servlet>
    <servlet-name>view_orders</servlet-name>
    <servlet-class>servlet.orderView</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>view_orders</servlet-name>
    <!-- 查看所有订单 -->
    <url-pattern>/view/orders</url-pattern>
  </servlet-mapping> 
  
   <servlet>
    <servlet-name>product_purchase</servlet-name>
    <servlet-class>servlet.productPurchase</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>product_purchase</servlet-name>
    <!-- 商品页面进行直接购买 -->
    <url-pattern>/product/purchase</url-pattern>
  </servlet-mapping> 
  
  
</web-app>

Front-end login page:

 The front-end interface calls the back-end interface:

Interface name: 127.0.0.1:8080/shop_sys2/user/login

 Logic explanation:

1- First configure the content in <servlet></servlet>, and then configure the content in <servlet-mapping></servlet-mapping>.

2-<servlet></servlet> This configuration is equivalent to binding userLogin.java,

In userLogin.java, the void doPost (parameter omitted) we wrote is specifically the background logic written by the backend to process the frontend’s request to 127.0.0.1:8080/shop_sys2/user/login in Post mode , such as querying the database See if the user can log in [Of course, it can also handle Get requests, we didn't write to handle Get]. And how to make this servlet accessible to the front end, this is the role of web.xml. Of course, there are many ways to deal with it, and web.xml is the most basic one. Later proficiency can use annotations.

3- Content configuration in <servlet-mapping> </servlet-mapping>

It is the Post method that responds to the front-end request 127.0.0.1:8080/shop_sys2/user/login,

3.1- Through the <url-pattern> /user/login </url-pattern> in <servlet-mapping></servlet-mapping> , let the background recognize that the front end sent 127.0.0.1:8080/shop_sys2/user/login request ,

After that, according to the user_login obtained by <servlet-name>user_login</servlet-name> , find    <servlet-name> user_login </servlet-name> in the content of <servlet></servlet> ,

Let the logic enter the corresponding servlet for processing [this step is determined by the content servlet.userLogin in <servlet-class>servlet.userLogin</servlet-class>! ! ! ! ], and then there is the query database in the specific userLogin.java's void doPost (parameters omitted).

If you don’t understand the text description here, you can look at the picture below, maybe you will understand.

   <servlet>
    <servlet-name>user_login</servlet-name>
    <servlet-class>servlet.userLogin</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>user_login</servlet-name>
    <!-- 登录 -->
    <url-pattern>/user/login</url-pattern>
  </servlet-mapping>

Guess you like

Origin blog.csdn.net/Elephantpretty/article/details/131503481