浅谈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文件:
packagecom.servlet.study;
importjava.io.IOException;
importjava.io.PrintWriter;
importjavax.servlet.ServletException;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
publicclassHelloWorldServletextendsHttpServlet{
@Override
protectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{
super.doGet(req,resp);
}
@Override
protectedvoiddoPost(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,IOException{
resp.setContentType("text/html;charset=UTF-8");
req.setCharacterEncoding("UTF-8");
StringuserName=req.getParameter("username");
StringpassWord=req.getParameter("password");
PrintWriterout=resp.getWriter();
out.print("<html>");
out.print("<head>");
out.print("<title>Helloworld</title>");
out.print("</head>");
out.print("<body>");
out.print("<hr>");
out.println("Theusernameis"+userName);
out.println("Thepasswordis"+passWord);
out.print("</body>");
out.print("</html>");
}
}
2.创建HTML文件:
<!DOCTYPEhtml> <html> <head> <metacharset="UTF-8"> <title>用户登录页面</title> </head> <body> <h1align="center">登录系统</h1><hr> <formaction="helloworld_servlet"method="post">//表单的action其实指明了servlet的url <table> <tr> <td>用户名</td> <td><inputtype="text"name="username"></td> </tr> <tr> <td>密码</td> <td><inputtype="password"name="password"></td> </tr> <tr> <td><inputtype="reset"value="重填"></td> <td><inputtype="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请求。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持毛票票!