JavaWeb重点分析(3)

2019-09-02 19:01

4 servlet的单例问题

当servlet第一次被访问后,就被加载到内存,以后该实例对各个请求进行服务。即在使用时是单例的:

package com.xy.testServlet;

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 MyServlet1 extends HttpServlet { int i=0; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { System.out.println(\ this.doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { i++; System.out.println(\ response.getWriter().println(\ }}

简单的用户登录,在主界面中可以显示用户名和自己的密码

? 登录界面

package com.xy.testServlet;

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 LoginServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(\ response.setCharacterEncoding(\ PrintWriter out = response.getWriter();

}

out.println(\用户登录界面\out.println(\

out.println(\用户名:
\out.println(\密码:
\out.println(\登录'/>
\out.println(\

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); }

}

? 处理界面

package com.xy.testServlet;

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 LoginClServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException { response.setContentType(\ response.setCharacterEncoding(\ PrintWriter out = response.getWriter(); String name=request.getParameter(\ String pwd=request.getParameter(\ System.out.println(\ if(name.equals(\ response.sendRedirect(\ }else{ response.sendRedirect(\这里是我们的项目名字加上我们要跳转的那个servlet的url

} } public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException { this.doGet(request, response); } }

? 主界面,有一个超链接可以返回重新登录

package com.xy.testServlet;

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 Main extends HttpServlet { /** * The doGet method of the servlet.
* * This method is called when a form has its tag value method equals to get.

* * @param request the request send by the client to the server * @param response the response send by the server to the client * @throws ServletException if an error occurred * @throws IOException if an error occurred */ public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException { response.setContentType(\ PrintWriter out = response.getWriter();

out.println(\out.println(\重新登录\ } public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException { this.doGet(request, response); } }

可以使用我们的java技术来实现

可以使用httpServlet中的sendRedirec来实现 可以使用Session

HttpServletResponse

在我们的HttpServletResponse中有OutputStream和PrintWriter都可以实现向我们的浏览器回送数据不同:PrintWriter向客户端回送字符数据 OutputStream可以回送字符数据,可以回送字节数据 选择: 我们如果回送的是字符数据,就是用PrintWriter,效率高 如果回送的是字节数据就是用OutputStream PrintWriter out = response.getWriter();

out.println(\

OutputStream os=response.getOutputStream();

os.write(\ os.write(\重新登录\注意:不能同时使用这两个

Sendredirect:

package com.xy.testServlet;

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 LoginClServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(\ response.setCharacterEncoding(\ PrintWriter out = response.getWriter(); String name=request.getParameter(\ String pwd=request.getParameter(\ System.out.println(\ if(name.equals(\ response.sendRedirect(\ }else{ response.sendRedirect(\ } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); } }

小结:

response.sendRedirect(\优点:传送速度快

缺点:只能传送字符串,不能传送一个对象

注意:在?前面的是我们要跳转的那个页面的url,url和变量之间要有问号,当我们传递多


JavaWeb重点分析(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:江苏省1:50万区域环境地质调查报告 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: