1. 程式人生 > 其它 >Servlet簡介及獲取引數操作

Servlet簡介及獲取引數操作

Servlet介紹

執行在 Web 伺服器或應用伺服器上的程式,可以收集來自網頁表單的使用者輸入,呈現來自資料庫或者其他源的記錄,還可以動態建立網頁。

Servlet獲取引數

示例:

//AddServlet.java
package com.example.javaweb01;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

public class AddServlet extends HttpServlet {
    //doPost
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //設定編碼,防止中文亂碼
        req.setCharacterEncoding("UTF-8");
        
        String fname = req.getParameter("fname");
        String priceStr = req.getParameter("price");
        //引數均以字串形式獲取,需轉換
        Integer price = Integer.parseInt(priceStr);
        String fcountStr = req.getParameter("fcount");
        Integer fcount = Integer.parseInt(fcountStr);
        String remark = req.getParameter("remark");

        System.out.println("fname: " + fname);
        System.out.println("price: " + price);
        System.out.println("fcount: " + fcount);
        System.out.println("remark: " + remark);
    }
}

頁面:

<!--add.html-->
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>Hello</title>
</head>
<body>
    <form action="add" method="post">
        名稱: <input type="text" name="fname"/>
        價格: <input type="text" name="price"/>
        庫存: <input type="text" name="fcount"/>
        備註: <input typr="text" name="remark"/>
        <input type="submit" value="新增"/>
    </form>
</body>
</html>

WEB-INF:

<!--web.xml-->
<?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>AddServlet</servlet-name>
        <servlet-class>com.example.javaweb01.AddServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>AddServlet</servlet-name>
        <url-pattern>/add</url-pattern>
    </servlet-mapping>
</web-app>

執行過程:

  1. 使用者傳送請求,action="add"
  2. 專案中,web.xml中找到url-pattern /add(注意/符號)
  3. servlet-mapping(對映)中的servlet-name
  4. servlet中與servlet-mapping中一樣的servlet-name
  5. servlet-class
  6. 使用者請求method=post,執行class中的doPost