servlet是用java语言编写的,是一个java类。主要功能是用来接受、处理客户端的请求,并把处理结果返回到客户端显示。Jsp是servlet发展后期的产物。在没有jsp之前,servlet利用输出流动态生成整个HTML页面,输出内容包括每一个HTML标签和每个在HTML页面中出现的内容。HTML文件包含大量标签和大量静态文本及格式等,以及所有的表现逻辑,包括布局、色彩及图像等。这些内容都必须耦合在java代码中,这样就导致servlet开发效率低下,令人不胜其烦。jsp出现后弥补了不足,因为jsp文件是通过在标准的HTML页面中插入java代码形成的。其静态的部分无需java程序控制,只有那些需要从数据库读取并根据程序动态生成信息时,才使用java脚本控制。所以jsp技术出现后,主要用jsp文件来动态生成HTML文件,然后返回客户端显示。现在的servlet,当需要将整个页面作为结果返回时,不再由其自己去处理,而是调用jsp文件。
下面开发部署一个简单的servlet程序来展示:
1.创建处理请求的servlet文件:
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
30
31
|
package com.servlet.study;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class HelloWorldServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super .doGet(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType( "text/html;charset=UTF-8" );
req.setCharacterEncoding( "UTF-8" );
String userName = req.getParameter( "username" );
String passWord = req.getParameter( "password" );
PrintWriter out = resp.getWriter();
out.print( "<html>" );
out.print( "<head>" );
out.print( "<title>Helloworld</title>" );
out.print( "</head>" );
out.print( "<body>" );
out.print( "<hr>" );
out.println( "The username is " +userName);
out.println( "The password is " +passWord);
out.print( "</body>" );
out.print( "</html>" );
}
}
|
2.创建HTML文件:
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
|
<!DOCTYPE html>
< html >
< head >
< meta charset = "UTF-8" >
< title >用户登录页面</ title >
</ head >
< body >
< h1 align = "center" >登录系统</ h1 >< hr >
< form action = "helloworld_servlet" method = "post" >//表单的action其实指明了servlet的url
< table >
< tr >
< td >用户名</ td >
< td >< input type = "text" name = "username" ></ td >
</ tr >
< tr >
< td >密码</ td >
< td >< input type = "password" name = "password" ></ td >
</ tr >
< tr >
< td >< input type = "reset" value = "重填" ></ td >
< td >< input type = "submit" value = "提交" ></ td >
</ tr >
</ table >
</ form >
</ body >
</ html >
|
3.在web.xml中配置servlet:
1
2
3
4
5
6
7
|
< servlet >
< servlet-name >HelloWorldServlet</ servlet-name >
< servlet-class >com.servlet.study.HelloWorldServlet</ servlet-class >//实现类4</ servlet >
< servlet-mapping >//映射
< servlet-name >HelloWorldServlet</ servlet-name >
< url-pattern >/helloworld_servlet</ url-pattern >//“/”是必须的
</ servlet-mapping >
|
注:servlet类必须继承HttpServlet类,而且得重写doGet、doPost方法,并创建out对象。doGet方法是HttpServlet类中处理get请求的方法,doPost处理post请求。在表单中声明method,并在servlet类中编写相对应方法即可,本例特为post请求。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持服务器之家!
原文链接:http://www.cnblogs.com/Miracle-Maker/p/6429544.html