浅谈servlet与jsp的关系

 更新时间:2017年02月23日 09:10:21   作者:52Hz  
本文主要介绍了servlet与jsp的相关知识,并总结出servlet与jsp之间的关系,具有很好的参考价值,下面跟着小编一起来看下吧

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文件:

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文件:

<!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:

<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请求。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持脚本之家!

相关文章

  • Spring使用@Conditional进行条件装配的实现

    Spring使用@Conditional进行条件装配的实现

    在spring中有些bean需要满足某些环境条件才创建某个bean,这个时候可以在bean定义上使用@Conditional注解来修饰,所以本文给大家介绍了Spring使用@Conditional进行条件装配的实现,文中通过代码示例给大家介绍的非常详细,需要的朋友可以参考下
    2023-12-12
  • Java递归遍历文件目录代码实例

    Java递归遍历文件目录代码实例

    这篇文章主要介绍了Java递归遍历文件目录代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • IDEA java出现无效的源发行版14解决方案

    IDEA java出现无效的源发行版14解决方案

    这篇文章主要介绍了IDEA java出现无效的源发行版14解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • JVM中四种GC算法案例详解

    JVM中四种GC算法案例详解

    这篇文章主要介绍了JVM中四种GC算法案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-09-09
  • 详细解读AbstractStringBuilder类源码

    详细解读AbstractStringBuilder类源码

    这篇文章主要介绍了详细解读AbstractStringBuilder类源码,具有一定参考价值,需要的朋友可以了解下。
    2017-12-12
  • Java实现带缓冲的输入输出流

    Java实现带缓冲的输入输出流

    本文详细讲解了Java实现带缓冲的输入输出流,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • Java开发过程中关于异常处理的详解

    Java开发过程中关于异常处理的详解

    异常是程序中的一些错误,但不是所有错误都是异常,且错误有时候是可以避免的。比如说,你的代码少一个分号,那运行出来结果是提示是错误 java.lang.Error;如果你用System.out.println(11/0),那么你是因为你用0做了除数,会抛出 java.lang.ArithmeticException 的异常
    2021-10-10
  • SpringBoot 动态定时器的使用方法

    SpringBoot 动态定时器的使用方法

    这篇文章主要介绍了SpringBoot 动态定时器的使用方法,非常不错,具有一定的参考借鉴借鉴价值,需要的朋友可以参考下
    2018-05-05
  • 记录一次connection reset 错误的解决全过程

    记录一次connection reset 错误的解决全过程

    这篇文章主要介绍了记录一次connection reset 错误的解决全过程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • MyBatis中的resultMap简要概述

    MyBatis中的resultMap简要概述

    这篇文章主要介绍了MyBatis中的resultMap简要概述的相关资料,需要的朋友可以参考下
    2016-07-07

最新评论