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