Userservlet登录数据处理,包括访问页面次数处理:

package com.szxy.test;

import java.io.IOException;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession; public class Uservlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
req.setCharacterEncoding("utf-8");//请求编码格式
resp.setContentType("text/html;charset=utf-8");//响应编码格式
String uname = req.getParameter("uname");
String pwd = req.getParameter("pwd");
//创建session
HttpSession session = req.getSession(); if ("yxf".equals(uname)&&"wangjing".equals(pwd)) {
//先获取公共资源对象
ServletContext sc = this.getServletContext();
Object obj1 = sc.getAttribute("nums");
Object obj2 = sc.getAttribute("number");
if (obj1!=null) {
int nums=(Integer) obj1;
nums++;
sc.setAttribute("nums", nums);
} else {
sc.setAttribute("nums", 1);
} if (obj2!=null) {
int number=(Integer) obj2;
number++;
sc.setAttribute("number", number);
} else {
sc.setAttribute("number", 1);
}
//登录成功,将uname放入session中
session.setAttribute("uname", uname);
resp.sendRedirect("index");
}else {
//创建标记,将标记放在session中
session.setAttribute("false", "loginfalse");
resp.sendRedirect("dl");
// req.getRequestDispatcher("dl").forward(req, resp);
return;
}
}
}

NumberServlet:将访问页面次数储存,初始化页面的时候从文件取出次数,关闭服务器的时候,保存次数。

package com.szxy.test;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter; import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet; public class NumberServlet extends HttpServlet {
@Override
public void init() throws ServletException {
//先获取公共资源
ServletContext sc = this.getServletContext();
//获取计数器文件位置(文件的绝对路径,动态获取)
String path = sc.getRealPath("number/num.txt");
//获取文件
File file=new File(path);
//读取文件流对象
FileInputStream fis=null;
InputStreamReader isr=null;
BufferedReader br=null;
try {
fis=new FileInputStream(file);
isr=new InputStreamReader(fis);
br=new BufferedReader(isr);
//获取计数器公共资源
String number = br.readLine();
System.out.println("-----------------"+number+"-------------");
//将数据存储到公共资源中
sc.setAttribute("number",Integer.parseInt(number));
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
fis.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
isr.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
br.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} @Override
public void destroy() {
//先获取共享资源对象
ServletContext sc = this.getServletContext();
// 获取计数器
int number = (Integer)sc.getAttribute("number");
//获取计数器文件位置(文件的绝对路径,动态获取)
String path = sc.getRealPath("number/num.txt");
//将计数器存储到文件中
File file=new File(path);
//获取资源的流对象
BufferedWriter bw=null;
OutputStreamWriter osw=null;
FileOutputStream fos=null;
try {
fos=new FileOutputStream(file);
osw=new OutputStreamWriter(fos);
bw=new BufferedWriter(osw);
//将资源写入文件中
bw.write(number+"");
//刷新
bw.flush();
} catch (Exception e) {
e.printStackTrace();
}finally{
try {
fos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
osw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
bw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} }
}

IndexServlet登录成功页面:

package com.szxy.test;

import java.io.IOException;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession; public class IndexServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8"); //获取公共资源对象
ServletContext sc = this.getServletContext();
int num =(Integer)sc.getAttribute("nums");
int n = (Integer)sc.getAttribute("number");
resp.getWriter().write("<html>");
resp.getWriter().write("<head>");
resp.getWriter().write("</head>");
resp.getWriter().write("<body>");
resp.getWriter().write("<h1 >欢迎"+req.getSession().getAttribute("uname")+"登录成功</h1>");
resp.getWriter().write("<h4 align=right>当前在线人数:"+num+"</h4>");
resp.getWriter().write("<h4 align=right>页面被访问:"+n+"次</h4>");
resp.getWriter().write("<hr/>");
resp.getWriter().write("</body>");
resp.getWriter().write("</html>");
}
}

DLuServlet 登录界面:

package com.szxy.test;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession; public class DLuServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8"); HttpSession session = req.getSession();
String str = (session.getAttribute("false")==null?"":"用户名或密码错误");
session.invalidate();
resp.getWriter().write("<html>");
resp.getWriter().write("<head>");
resp.getWriter().write("</head>");
resp.getWriter().write("<body>");
resp.getWriter().write("<form action='user' method='post'/>");
resp.getWriter().write("<font color='red'>"+str+"</font>");
resp.getWriter().write("<br/>");
resp.getWriter().write("用户名:<input type='text' name='uname' value='' /><br/>");
resp.getWriter().write("密码:<input type='password' name='pwd' value='' /><br/>");
resp.getWriter().write("<input type='submit' value='登录' />");
resp.getWriter().write("</body>");
resp.getWriter().write("</html>");
}
}

最新文章

  1. Linux基础命令-有关于目录的命令
  2. php中Jpgraph的运用
  3. ERP反馈信息管理(十九)
  4. Hash Table构建
  5. 使用info.plist(或工程名-info.plist)向程序中添加软件Build ID或者版本号信息
  6. MVC3的一个意外的异常 String was not recognized as a valid Boolean. @using (Html.BeginForm())
  7. JavaEmail
  8. JVM JMM
  9. 全国计算机等级考试二级教程-C语言程序设计_第11章_对函数的进一步讨论
  10. Unknown
  11. C#数字类型及运算符
  12. 如何巧妙的利用selenium和requests组合来进行操作需要登录的页面
  13. cordova插件汇总
  14. 从koa-session源码解读session本质
  15. c++ protected 访问限定
  16. 团队作业M1反思
  17. Java集合list,map,set区别及遍历
  18. golang并发ping主机
  19. JS播放声音
  20. iOS:获取 NSDate 的年

热门文章

  1. jquery倒计时代码
  2. 201871010114-李岩松《面向对象程序设计(java)》第四周学习总结
  3. (转)白话数字签名(2)——软件&amp;设备
  4. 深入理解 DNS
  5. MyBatis批量插入模板
  6. Python 面向对象-上篇
  7. nyoj 66-分数拆分 (Java,暴力)
  8. nyoj 100-1的个数 (因为只统计1的个数,连栈都不需要了)
  9. 理解MySQL数据库事务-隔离性
  10. 逻辑卷LVM