Servlet单个实例

来源:互联网 发布:企业网络课程平台 编辑:程序博客网 时间:2024/06/04 23:58

整个Servlet对象在tomcat里面只有一个

  • 问题描述:
    • 写一个Servlet对象,使用不同的浏览器浏览时,刷新,会出现数据安全问题。由于servlet对象只有一个,其中的属性很容易称为servlet方法执行的临界资源,尽可能不要在Servlet中定义成员变量
    • 解决方法:
    • 在servlet中添加同步代码块

代码示例

package com.only;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;/** * 写一个Servlet对象,使用不同的浏览器浏览时,刷新,会出现数据安全问题 * 由于servlet对象只有一个,其中的属性很容易称为servlet方法执行的临界资源,尽可能不要在Servlet中定义成员变量 *  * 解决方法: *  添加同步代码块 */public class CountServlet extends HttpServlet {    //设置一个成员变量    private int count = 0;    @Override    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {        //设置响应类型和编码格式        response.setContentType("text/html");        response.setCharacterEncoding("utf-8");        request.setCharacterEncoding("utf-8");        //将以下代码作为同步代码块        synchronized (this) {            count++;            PrintWriter pw = response.getWriter();            pw.println("<h2>你是第" + count + "个访问者</h2>");            pw.flush();        }    }}
0 0
原创粉丝点击