jsp中的表單form action指向servlet類
阿新 • • 發佈:2019-01-09
1.檔案
2.頁面聯絡
addStudent.jsp是學生資訊新增頁面,當資訊填寫完畢點選提交按鈕時,AddStudentServlet處理使用者請求,處理完畢後跳轉到message1.jsp頁面。
AddStudentServlet.java中程式碼為:
package ch01; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class AddStudentServlet extends HttpServlet{ protected void doGet (HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{ String studentNumber=request.getParameter("studentNumber"); String studentName=request.getParameter("studentName"); String studentSex=request.getParameter("studentSex"); String studentAge=request.getParameter("studentAge"); String studentWeight=request.getParameter("studentWeight"); DBJavaBean db=new DBJavaBean(); if(db.addStudent(studentNumber, studentName, studentSex, studentAge, studentWeight)){ response.sendRedirect("./code/myCode/studentManage/message1.jsp"); } else{ response.sendRedirect("./code/myCode/studentManage/addStudent.jsp"); } } protected void doPost(HttpServletRequest request,HttpServletResponse response)throws ServletException,IOException{ doGet(request,response); } }
在web.xml中對servlet進行配置:
兩個servlet-name應相同,action裡的指向應與url-pattern內容中/後面的相同。因此jsp中的action="AddStudentServlet",但是會發生404錯誤:<?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>TomcatTest</display-name> <welcome-file-list> <welcome-file>stuAdmin.jsp</welcome-file> <welcome-file>left.jsp</welcome-file> <welcome-file>top.jsp</welcome-file> <welcome-file>bottom.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>AddStudentServlet
</servlet-name> <servlet-class>ch01.AddStudentServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>AddStudentServlet</servlet-name> <url-pattern>/AddStudentServlet</url-pattern> </servlet-mapping> </web-app>
是因為路徑不對,AddStudentServlet是放在java Resources中的ch01包中的,而不是在studentManage下的。所以應加上專案名action="/TomcatTest/AddStudentServlet"
在addStudent.jsp中程式碼為:
<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>學生資訊新增</title>
</head>
<body bgcolor="CCCFFF">
<center>
<br><br><br>
<h3> 新增學生資訊</h3>
<form action="/TomcatTest/AddStudentServlet" method="get">
<table border="1" width="230">
<tr>
<td>學號:</td>
<td><input type="text" name="studentNumber" /></td>
</tr>
<tr>
<td>姓名:</td>
<td><input type="text" name="studentName" /></td>
</tr>
<tr>
<td>性別:</td>
<td><input type="text" name="studentSex" /></td>
</tr>
<tr>
<td>年齡:</td>
<td><input type="text" name="studentAge" /></td>
</tr>
<tr>
<td>體重:</td>
<td><input type="text" name="studentWeight" /></td>
</tr>
<tr align="center">
<td>
<input type="submit" name="sure" value="提交" />
<input type="reset" name="clear" value="取消" />
</td>
</tr>
</table>
</form>
</center>
</body>
</html>