首页 > 代码库 > JSP怎么将表单提交到对应的servlet
JSP怎么将表单提交到对应的servlet
昨天学习了这些内容,今天做一下分享吧,个人感觉挺乱的。。。。呵呵,其实没事,慢慢就好了。难的不会,会的不难嘛!努力+认真就可以了,相信大家都可以的!加油!!!
下面的图是我用myeclipse建立的项目的目录。
目录结构有点多哈。。。没事其实很简单的!
下面是我的index.jsp中的全部代码:这里只是有一个表单,提交到TestServlet.java这个servlet中
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <%@ page language= "java" contentType= "text/html; charset=GB18030" pageEncoding= "GB18030" %> <meta http-equiv= "Content-Type" content= "text/html; charset=GB18030" > <title>Insert title here</title> <h1>测试servlet</h1> <hr> <form action= "servlet/TestServlet" method= "post" dir= "ltr" > <input name= "userID" type= "text" ><br> <input value=http://www.mamicode.com/ "查询" type= "submit" ><br> </form> b.jsp |
下面是TestServlet.java中的全部代码:这个是获取表单提交的内容,然后转发到另一个页面(c.jsp),其中这里包含一个业务逻辑(UserManager.java)
UserManager usermanager=new UserManager();
List userlist=usermanager.findUserByName(username);
以上这两行代码是业务逻辑的代码,获取数据。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | 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 { @Override protected 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/http://blog.csdn.net/majianjie/article/details/c/c.jsp" ).forward(req, res);//转发getRequestDispatcher } } |
下面是UserManager.java 的代码行(即业务逻辑)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 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; } } </string></string></string> |
下面是c.jsp的代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <%@ page language= "java" contentType= "text/html; charset=GB18030" pageEncoding= "GB18030" %> <%@ page import = "java.util.*" %> <meta http-equiv= "Content-Type" content= "text/html; charset=GB18030" > <title>Insert title here</title> c.jsp <p> <% List userList = (List)request.getAttribute( "userlist" ); out.println(userList); %> </p><p> a.jsp </p> |
下面是a.jsp的代码
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
a.jsp
下面是b.jsp的代码
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
b.jsp
a.jsp
c.jsp
d.jsp
e.jsp
d.jsp, e.jsp中的代码和a.jsp中的代码一样,唯一不同的就是: 将a改为d ,将a改为e......大部分代码是自动生成的,很省事的。
最后是web.xml中的代码:这里是一些配置信息。很重要的!!!嘿嘿嘿
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <!--?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/TestServlet相同。结果找到如,如下:
TestServlet
/servlet/TestServlet
其中 /servlet/TestServlet 是你表单的访问地址
然后,tomcat根据上面的TestServlet找到和
相对应的配置如下
TestServlet
com.majianjie.TestServlet
然后根据当中 找到TestServlet.java文件的地址。
然后通过设置tomcat就可以在浏览器中访问了。例如我的配置好tomcat后在浏览器中输入:http://localhost:8888/test_servlet/就可以访问了,
结果如图:
点击查询后:
点击超级链接b.jsp后是:<喎?"http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+PGltZyBzcmM9"http://www.2cto.com/uploadfile/Collfiles/20140225/20140225085659468.jpg" >