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="查询"
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"
>

时间: 2024-10-15 05:46:32

JSP怎么将表单提交到对应的servlet的相关文章

关于JSP里面的表单提交

JSP表单提交 我们都知道表单提交大致可分为两类:一类是通过提交按钮submit直接提交表单,也可以通过JS或Jquery利用选择器找到那个需要提交的form表单,如$("#loginForm").submit():还有一种就是通过ajax异步提交,如: $(function(){ $("#saveBtn").click(function{ var uname = $("#username").val(); var pwd = $("#

JSP页面一个表单提交两个不同的action

<%@page import="java.sql.ResultSet"%> <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@ page import="java.io.*,java.util.*,java.sql.*,shouqisystem.user.*&

struts2 jsp表单提交后保留表单中输入框中的值 下拉框select与input

原文地址:struts2 jsp表单提交后保留表单中输入框中的值 下拉框select与input jsp页面 1     function dosearch() {2         if ($("#textValue").val() == "") {3                 $("#errortip").html("<font color='#FF0000'>请输入查询内容</font>")

JSP表单提交中文乱码

简要笔记:由于jsp默认表单提交编码方式是:ISO-8859-1,而我们需要的是utf-8或者是gbk码,故需要转化. 具体方法是:在表单处理文件中,将获取到的变量进行转换. String userName = request.getParameter("userName"); String password = request.getParameter("password"); out.println("表单输入userName的值:" + n

JSP表单提交中文乱码解决方案

分2种提交方式,解决方案不同: 1.form表单提交方式为get 乱码: 解决方案: 第1种方法:tomcat-config-sever.xml 第2种方法: <% String username = request.getParameter("username"); String name = new String(username.getBytes("ios-8859-1"),"utf-8"); String password = re

jsp 表单提交,request.getRequestDispatcher方法 及 response.sendRedirect 路径问题

在jsp页面中,等提交表单数据时,最好用觉得路径. 写法如下: <form action ="<%=request.getContextPath()%>/do_login.jsp" method="post"> 其中 request.getContextPath() 方法是取得当前项目的根目录位置. 这种用法叫做 “绝对路径” 使用绝对路径的好处是不太容易出错.缺点是目标路径字符串容易写的很长(如果目录层数过深的话).如果使用相对路径,有时路

关于表单提交的书写

注意form表单提交的action属性写地址的时候,开头不要用"/",因为如果写上"/"的话,系统就会在WEB-INF/views中寻找这个jsp文件的 未完待续...

ajax传递数组、form表单提交对象数组

在JSP页面开发中,我们常常会用到form表单做数据提交,由于以前一直只是使用form表单提交单个对象,只要表单文本域的name值和接收的对象的属性名一致,那么传值就没有什么问题.不过,在前几天的开发任务中,遇到了需要批量传递对象,也就是需要传递对象数组,在此做个总结.今天又遇到需要向后台传递数组,便一并写下来吧. 1.ajax传递普通数组 前台代码 var deleteNum= [];//定义要传递的数组 deleteNum.push("1"); deleteNum.push(&qu

中文乱码又一解决方法:将表单提交方式由get改为post

当把所有牵涉到的都改为utf-8时,依然有乱码.后来在网站上求助,滄海一夢 给出了这个解决方案:将表单提交方式由get改为post,果然成功.谢过! 1.filter/comments.jsp: <%@ page language ="java" import="java.util.*" pageEncoding="UTF-8" %> <% String path = request.getContextPath(); Stri