zoukankan      html  css  js  c++  java
  • 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"?-->
        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" alt="">

  • 相关阅读:
    java.net.BindException: Address already in use: 解决方法
    openlayers中单击获取要素
    OpenLayers绘制图形
    springboot启动失败( No active profile set, falling back to default profiles: default)
    Java学习日报7.16
    Java学习日报7.15
    Java学习日报7.14
    Java学习日报7.13
    Java学习日报7.12
    Java学习日报7.10
  • 原文地址:https://www.cnblogs.com/newsouls/p/3770662.html
Copyright © 2011-2022 走看看