博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JSP怎么将表单提交到对应的servlet
阅读量:5952 次
发布时间:2019-06-19

本文共 3964 字,大约阅读时间需要 13 分钟。

昨天学习了这些内容,今天做一下分享吧,个人感觉挺乱的。。。。呵呵,其实没事,慢慢就好了。难的不会,会的不难嘛!努力+认真就可以了,相信大家都可以的!加油!!!

下面的图是我用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/"
).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

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=
""
xmlns:xsi=
""
xsi:schemalocation="
    
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="">

转载地址:http://znaxx.baihongyu.com/

你可能感兴趣的文章
多线程设计模式 - Future模式
查看>>
android清理缓存动画、天气APP、购物下单选择器、阅读APP、饿了么demo等源码
查看>>
驳《我不是很懂 Node.js 社区的 DRY 文化》
查看>>
《Spring In Action(第4版)》阅读总结(四)渲染Web视图
查看>>
CGI、PHP-CGI、FastCGI
查看>>
PhoneGap极光推送 cordova消息推送
查看>>
Subarray Sum Equals K
查看>>
preventDefault, stopPropagation, stopImmediatePropagation 三者的区别
查看>>
王下邀月熊_Chevalier的前端每周清单系列文章索引
查看>>
js设计模式之观察者模式和发布/订阅模式
查看>>
Mac上以太坊Geth环境安装
查看>>
基于Netty模拟解析Binlog
查看>>
零配置构建工具:parcel
查看>>
算法题解:找出包含给定字符的最小窗口(枚举的一般方法)
查看>>
lodash源码分析之baseFindIndex中的运算符优先级
查看>>
MySQL数据库规范及解读
查看>>
用 Go 构建一个区块链 -- Part 5: 地址
查看>>
vscode+sftp 开发模式环境的同步
查看>>
Web Storage 与cookies
查看>>
Android Gallery2技术分析
查看>>