欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

浅谈servlet与jsp的关系

程序员文章站 2024-03-05 18:40:01
servlet是用java语言编写的,是一个java类。主要功能是用来接受、处理客户端的请求,并把处理结果返回到客户端显示。jsp是servlet发展后期的产物。在没有js...

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

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