JSP怎麼將表單提交到對應的servlet

來源:互聯網
上載者:User

昨天學習了這些內容,今天做一下分享吧,個人感覺挺亂的。。。。呵呵,其實沒事,慢慢就好了。難的不會,會的不難嘛!努力+認真就可以了,相信大家都可以的!加油!!!


下面的圖是我用myeclipse建立的項目的目錄。


目錄結構有點多哈。。。沒事其實很簡單的!

下面是我的index.jsp中的全部代碼:這裡只是有一個表單,提交到TestServlet.java這個servlet中


<%@ page language="java" contentType="text/html; charset=GB18030"    pageEncoding="GB18030"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=GB18030"><title>Insert title here</title></head><body><h1>測試servlet</h1><hr><form action="servlet/TestServlet" method="post" dir="ltr"><input type="text" name="userID"><br><input type="submit" value="查詢"><br></form><a href="a/b/b.jsp">b.jsp</a></body></html>



下面是TestServlet.java中的全部代碼:這個是擷取表單提交的內容,然後轉寄到另一個頁面(c.jsp),其中這裡包含一個商務邏輯(UserManager.java)

UserManager usermanager=new UserManager();
List userlist=usermanager.findUserByName(username);

以上這兩行代碼是商務邏輯的代碼,擷取資料。

package com.majianjie.servlet;import java.io.IOException;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class TestServlet extends HttpServlet {@Overrideprotected void service(HttpServletRequest req, HttpServletResponse res)throws ServletException, IOException {//取得表單資料String username=req.getParameter("username");UserManager usermanager=new UserManager();List userlist=usermanager.findUserByName(username);req.setAttribute("userlist", userlist);//設定到req中,key-->value//轉向到一個介面c.jsp,取出list中的資料req.getRequestDispatcher("/a/b/c/c.jsp").forward(req, res);//轉寄getRequestDispatcher}}

下面是UserManager.java 的程式碼(即商務邏輯)

package com.majianjie.servlet;import java.util.ArrayList;import java.util.List;public class UserManager {public List<String> findUserByName(String name){List<String> userList=new ArrayList<String>();userList.add("資料一");userList.add("資料二");userList.add("資料三");return userList;}}

下面是c.jsp的代碼

<%@ page language="java" contentType="text/html; charset=GB18030"    pageEncoding="GB18030"%>    <%@ page import="java.util.*" %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=GB18030"><title>Insert title here</title></head><body>c.jsp<p><%List userList = (List)request.getAttribute("userlist");out.println(userList);%><p><a href="../../a.jsp">a.jsp</a></body></html>

下面是a.jsp的代碼

<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>
</head>
<body>
a.jsp


</body>
</html>


下面是b.jsp的代碼


<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<title>Insert title here</title>
</head>
<body>b.jsp


<p>

<a href="../a.jsp">a.jsp</a><br>
<a href="c/c.jsp">c.jsp</a><br>
<a href="../d/d.jsp">d.jsp</a><br>
<a href="../../e/e.jsp">e.jsp</a><br>

</body>
</html>


d.jsp,  e.jsp中的代碼和a.jsp中的代碼一樣,唯一不同的就是:  將a改為d     ,將a改為e......大部分代碼是自動產生的,很省事的。

最後是web.xml中的代碼:這裡是一些配置資訊。很重要的!!!嘿嘿嘿

<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  <welcome-file-list>    <welcome-file>index.jsp</welcome-file>  </welcome-file-list>    <servlet>  <servlet-name>TestServlet</servlet-name>  <servlet-class>com.majianjie.servlet.TestServlet</servlet-class>  </servlet>    <servlet-mapping>  <servlet-name>TestServlet</servlet-name>  <url-pattern>/servlet/TestServlet</url-pattern>  </servlet-mapping>  </web-app>


在表單中,當你點擊提交按鈕,觸發這個連結action="servlet/TestServlet"。請求到達伺服器tomcat後,tomcat檢查當前項目的web.xml中所有的<servlet-mapping></servlet-mapping>
配置中的<url-pattern></url-pattern>的屬性值。看當中有沒有一個和請求地址servlet/TestServlet相同。結果找到如,如下:
  <servlet-mapping>
      <servlet-name>TestServlet</servlet-name>
      <url-pattern>/servlet/TestServlet</url-pattern>
  </servlet-mapping>
   其中  <url-pattern>/servlet/TestServlet</url-pattern>  是你表單的訪問地址
然後,tomcat根據上面的<servlet-name>TestServlet</servlet-name>找到和
<servlet-mapping>相對應的<servlet>配置如下
 <servlet>
    <servlet-name>TestServlet</servlet-name>
    <servlet-class>com.majianjie.TestServlet</servlet-class>
  </servlet>
然後根據當中 <servlet-class>找到TestServlet.java檔案的地址。


然後通過設定tomcat就可以在瀏覽器中訪問了。例如我的配置好tomcat後在瀏覽器中輸入:http://localhost:8888/test_servlet/就可以訪問了,

結果


點擊查詢後:



點擊超級連結b.jsp後是:






相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.