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 package com.servlet.study;
 2
 3 import java.io.IOException;
 4 import java.io.PrintWriter;
 5
 6 import javax.servlet.ServletException;
 7 import javax.servlet.http.HttpServlet;
 8 import javax.servlet.http.HttpServletRequest;
 9 import javax.servlet.http.HttpServletResponse;
10
11 public class HelloWorldServlet extends HttpServlet {
12     @Override
13     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
14         super.doGet(req, resp);
15     }
16     @Override
17     protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
18         resp.setContentType("text/html;charset=UTF-8");
19         req.setCharacterEncoding("UTF-8");
20         String userName = req.getParameter("username");
21         String passWord = req.getParameter("password");
22         PrintWriter out = resp.getWriter();
23         out.print("<html>");
24         out.print("<head>");
25         out.print("<title>Helloworld</title>");
26         out.print("</head>");
27         out.print("<body>");
28         out.print("<hr>");
29         out.println("The username is " userName);
30         out.println("The password is " passWord);
31         out.print("</body>");
32         out.print("</html>");
33     }
34 }

2.创建HTML文件:

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 <meta charset="UTF-8">
 5 <title>用户登录页面</title>
 6 </head>
 7 <body>
 8 <h1 align="center">登录系统</h1><hr>
 9 <form action="helloworld_servlet" method = "post">//表单的action其实指明了servlet的url
10     <table>
11         <tr>
12             <td>用户名</td>
13             <td><input type="text" name="username"></td>
14         </tr>
15         <tr>
16             <td>密码</td>
17             <td><input type="password" name="password"></td>
18         </tr>
19         <tr>
20             <td><input type="reset" value="重填"></td>
21             <td><input type="submit" value="提交"></td>
22         </tr>
23     </table>
24 </form>
25 </body>
26 </html>

3.在web.xml中配置servlet:

1 <servlet>
2         <servlet-name>HelloWorldServlet</servlet-name>
3         <servlet-class>com.servlet.study.HelloWorldServlet</servlet-class>//实现类
4</servlet>
5     <servlet-mapping>//映射
6         <servlet-name>HelloWorldServlet</servlet-name>
7         <url-pattern>/helloworld_servlet</url-pattern>//“/”是必须的
8     </servlet-mapping>

注:]servlet类必须继承HttpServlet类,而且得重写doGet、doPost方法,并创建out对象。doGet方法是HttpServlet类中处理get请求的方法,doPost处理post请求。在表单中声明method,并在servlet类中编写相对应方法即可,本例特为post请求。

更多专业前端知识,请上 【猿2048】www.mk2048.com

浅谈servlet与jsp的关系相关推荐

  1. java与jsp的关系_浅谈servlet与jsp的关系

    servlet是用java语言编写的,是一个java类.主要功能是用来接受.处理客户端的请求,并把处理结果返回到客户端显示.Jsp是servlet发展后期的产物.在没有jsp之前,servlet利用输 ...

  2. 浅谈Servlet与JSP

    前言 提高Java Web 开发,不得不说http协议,接下来就说Servlet 和 Jsp 这两个java类. 正文 1.什么是JSP? JSP(Java Server Pages)是Sun 公司指 ...

  3. 浅谈Servlet的本质

    浅谈Servlet的本质 孟军补充:其实这里的servlet引擎就是servletAPI规范,也就是接口规范,何必说的如此文邹邹的,真是. servlet的本质其实就是servletAPI,程序员se ...

  4. 计算机与昆虫关系的论文,浅谈昆虫与人类的关系.doc

    浅谈昆虫与人类的关系.doc 浅谈昆虫与人类的关系 班级:生物科学师范 姓名:李杰 学号:2012221107110076 摘要:昆虫为全世界增添光彩,让声音更加多样化,然而随着人类活动的增加,昆虫的 ...

  5. 简述相关与回归分析的关系_浅谈相关分析与回归分析的关系

    浅谈相关分析与回归分析的关系 郝依寒 [期刊名称] <数字通信世界> [年 ( 卷 ), 期] 2018(000)004 [摘要] 本文以回归分析及回归分析的应用为对象做出简要论述 , 通 ...

  6. 谈Servlet与JSP

    文章目录 前言 正文 1.什么是JSP? 2.什么是Servlet? 3.JSP与Servlet的区别和联系 4.扬长弊端提出MVC 前言 提高Java Web 开发,不得不说http协议,接下来就说 ...

  7. 从浅谈servlet及tomcat到品味spring家族

    兄弟们好! 这些日子博主一直在精进spring的一些框架,所以很久没上博客了..不过今天呢突然想回忆一下以前的servlet编程的小故事. 闲话不扯了.. 回忆起来貌似servlet是个控制器,没错, ...

  8. 浅谈C++中的友元关系

    在封装中C++类数据成员大多情况是private属性:但是如果接口采用多参数实现肯定影响程序效率:然而这时候如果外界需要频繁访问这些私有成员,就不得不需要一个既安全又理想的"后门" ...

  9. 浅谈过程和结果的关系

    过程和结果是什么关系,这个似乎根本不需要过多解释,完美的过程产生完美的结果,错误的过程产生错误的结果,不良的过程产生不良的结果,没有过程就没有结果,总之结果是怎样的,完全取决于过程.道理虽然可以这样讲 ...

最新文章

  1. final关键字_Dart核心语言基础const关键字与final关键字的区别
  2. Substring with Concatenation of All Words
  3. html文件最后一行文字,文本多行溢出显示...之最后一行不到行尾的解决
  4. 【博弈】取石子游戏(P2599)
  5. PHP操作常见的错误
  6. php开启安全模式后影响的函数
  7. mac 黑窗口连接mysql_python操作mysql数据库
  8. 轻松搞定 Shell 玩转 HiveSQL
  9. Netty的并发编程实践3:CAS指令和原子类
  10. Spring Cloud+Spring Boot高频面试题解析
  11. glEnable(GL_DEPTH_TEST)作用
  12. 【2019杭电多校第一场1009=HDU6586】String(贪心+序列自动机)
  13. tomcat乱码的几种解决
  14. 2018 考研 408 经验贴——复试
  15. Flutter 和 Dart 开发中一些技巧和坑点填坑指南详解
  16. 超值得入手的无线蓝牙耳机,四款性价比最高的蓝牙耳机品牌推荐
  17. 基于Java毕业设计车辆调度管理系统源码+系统+mysql+lw文档+部署软件
  18. 新型信用卡MasterPass
  19. d610网络计算机,尼康D610,10年来我见过的真心值得买的全幅单反
  20. PAT 计算机程序设计能力考试--大纲

热门文章

  1. 华工网络教育C语言校考答案,计算机应用基础(统考)随堂练习2017秋华工答案.docx...
  2. 深入浅出linux工具与编程 下载,8208.深入浅出Linux工具与编程.pdf
  3. ldconfig mysql_ldconfig命令介绍
  4. SmartPDA图片
  5. 手势相关-解决手势冲突
  6. JAVA编程规范-常量定义
  7. matlab求解线性方程组
  8. Android开发——Android系统启动以及APK安装、启动过程
  9. 【Effective Java】6、使用复合优先于使用继承
  10. 【iCore3 双核心板_ uC/OS-III】例程五:软件定时器