login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<style>
</style>
<body>
<h1>登陆界面</h1>
<hr color="blue">
<form action="login" method="post">
<table>
<tr>
<td>
用户名:<input type="text" name="id" value="199000">
</td>
</tr>
<tr>
<td>
密 码:<input type="password" name="pass" value="123456">
</td>
</tr>
<tr>
<td>
<br>
<tr>
<tr>
<td width="50%" height="30" align="right">验证码:</td>
<td width="50%" height="30" align="left">
<input type="text" name="identifyCode">
<img id="img" src="validateCode.jsp" style="cursor:pointer">
<span></span>
</td>
</tr>
<tr>
<td>
<input type="submit" name="open" value="登录">
<input type="reset" name="off" value="取消">
</td>
</tr>
</table></form>
<form action="registe.jsp" method="post"><br>
没有账号?请先<input type="submit" name="registe" value="注册">
</form>
</body>
</html>
mistake.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
密码或者用户名错误...
<hr color="red">
<form action="login.jsp" method="post">
<input type="submit" name="out" value="重新登录">
</form>
</body>
</html>
register.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>注册</title>
</head>
<body >
<h1 align="center">用户注册</h1>
<hr color="white">
<table align="center">
<form action="register_result.jsp" method="post">
<tr>
<td>用户名:</td>
<td><input type="text" name="username" placeholder="请输入用户名"></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" name="userpass" placeholder="请输入密码"></td>
</tr>
<tr>
<td>确认密码:</td>
<td><input type="password" name="usepass" placeholder="请确认密码"></td>
</tr>
<tr>
<td>性别:</td>
<td>
<input type="radio" name="sex" value="boy" checked/>男
<input type="radio" name="sex" value="girl" />女
</td><!--checked为默认选中-->
</tr>
<tr>
<td>爱好:</td>
<td>
<input type="checkbox" name="interest" value="编程" checked/>编程
<input type="checkbox" name="interest" value="旅游" />旅游
<input type="checkbox" name="interest" value="游戏" />游戏
<input type="checkbox" name="interest" value="爬山" />爬山
</td>
</tr>
<tr>
<td>学历:</td>
<td>
<select name="grade">
<option value="gz">高中</option>
<option value="dz">大专</option>
<option value="bk" selected>本科</option><!--selected是默认选中-->
<option value="ss">硕士</option>
</select>
</td>
</tr>
<tr>
<td>个人简介:</td>
<td><textarea rows="5" cols="20" name="info"></textarea></td>
</tr>
<tr align="center">
<td colspan="2">
<input type="submit" value="注册" "/>
<input type="reset" value="取消"/>
</td>
</tr>
</form>
</table>
</body>
</html>
success.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="java.util.*" import="java.util.Date"%>
<%@ page import="java.text.SimpleDateFormat"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>账号登录成功!</h3>
<%
//获取用户名
if(session.getAttribute("id")!=null){
String id = (String)session.getAttribute("id");
out.println(id);
}
%>
<%
//强制转换。application需要关闭服务器才能关闭掉application对象(session是需要关闭浏览器)
Integer count = (Integer)application.getAttribute("count");
//如果count为null则令count=1
if(count == null){
count=1;
application.setAttribute("count",count);
//否则每登陆一次count++
}else{
count++;
application.setAttribute("count",count);
}
%>
<h3>欢迎您登录本页面,您是第<%=count %>个访问用户。</h3>
<%
Date now = new Date();
int year = now.getYear() + 1900; //机器中默认从1900年开始计算年份
int month = now.getMonth()+1; //因为在javascript中now取出的month比实际的月份小1,就好像数组的第一个元素下标是0一样
int date = now.getDate();
int day = now.getDay();
String week;
switch(day){ //getDay() 中 周一至周日:依次对应1234560
case 0:week = "星期日";break;
case 1:week = "星期一";break;
case 2:week = "星期二";break;
case 3:week = "星期三";break;
case 4:week = "星期四";break;
case 5:week = "星期五";break;
default:week = "星期六";
}
%>
今天是<%=year %>年<%=month %>月<%=date %>日<%=week %>;<br>
<a href = "http://www.baidu.com" target ="blank">百度</a><br>
<a href = "success1.jsp" target ="blank">用户管理</a><br>
<a href = "success1.jsp" target ="blank">新闻管理</a><br>
<hr color="blue">
<h2>主页正在开发,请期待......</h2>
<form action="login.jsp" method="post">
<input type="submit" name="out" value="退出">
</form>
</body>
</html>
success1.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
该页面正在开发!
<hr color="red">
<form action="login.jsp" method="post">
<input type="submit" name="out" value="重新登录">
</body>
</html>
Filter2.java
package filter1;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
/**
* Servlet Filter implementation class Filter2
*/
@WebFilter("/*")
public class Filter2 implements Filter {
/**
* Default constructor.
*/
public Filter2() {
// TODO Auto-generated constructor stub
}
/**
* @see Filter#destroy()
*/
public void destroy() {
// TODO Auto-generated method stub
}
/**
* @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
*/
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
// place your code here
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setContentType("text/html ; charset=UTF-8");
// pass the request along the filter chain
chain.doFilter(request, response);
}
/**
* @see Filter#init(FilterConfig)
*/
public void init(FilterConfig fConfig) throws ServletException {
// TODO Auto-generated method stub
}
}
MyFilter1.java
package filter1;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
/**
* Servlet Filter implementation class MyFilter1
*
*/
@WebFilter({"/success.jsp","/success1.jsp"})
public class MyFilter1 implements Filter {
/**
* Default constructor.
*/
public MyFilter1() {
// TODO Auto-generated constructor stub
}
/**
* @see Filter#destroy()
*/
public void destroy() {
// TODO Auto-generated method stub
}
/**
* @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
*/
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
// TODO Auto-generated method stub
// place your code here
// pass the request along the filter chain
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setContentType("text/html ; charset=UTF-8");
PrintWriter out=response.getWriter();
HttpSession session=((HttpServletRequest) request).getSession();
String id=(String) session.getAttribute("id");
if(id==null) {
out.print("没有登录,请<a href='login.jsp'>重新登录</a>");
return;
}
chain.doFilter(request, response);
}
/**
* @see Filter#init(FilterConfig)
*/
public void init(FilterConfig fConfig) throws ServletException {
// TODO Auto-generated method stub
}
}
login_Servlet.java
package Servelt;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@WebServlet("/login")
public class login_Servlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public login_Servlet() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
HttpSession session = request.getSession();
ServletContext application = request.getServletContext();
//获取到信息
String id = request.getParameter("id");//获取账号
String pass = request.getParameter("pass");
//登陆验证
if(id.equals("199000") && pass.equals("123456")){
//将账号保存到session变量中
session.setAttribute("id",id);
//登陆成功跳转页面
request.getRequestDispatcher("success.jsp").forward(request, response);
// 存储用户名
session.setAttribute("id","lss");
}
//第二个用户登陆验证
else if(id.equals("1990001") && pass.equals("123456")){
//将账号保存到session变量中
session.setAttribute("id",id);
//登陆成功跳转页面
request.getRequestDispatcher("success.jsp").forward(request, response);
//存储用户名
session.setAttribute("id","sf");
}
//第三个用户登陆验证
else if(id.equals("1990002") && pass.equals("123456")){
//将账号保存到session变量中
session.setAttribute("id",id);
//登陆成功跳转页面
request.getRequestDispatcher("success.jsp").forward(request, response);
//存储用户名
session.setAttribute("id","lll");
}
else{
//登录失败跳转页面
request.getRequestDispatcher("mistake.jsp").forward(request, response);
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
validateCode.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ page import="java.util.Random"%>
<%@ page import="java.io.OutputStream"%>
<%@ page import="java.awt.Color"%>
<%@ page import="java.awt.Font"%>
<%@ page import="java.awt.Graphics"%>
<%@ page import="java.awt.image.BufferedImage"%>
<%@ page import="javax.imageio.ImageIO"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>
<%
int width = 60;
int height = 20;
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); //创建图片
Graphics grap = image.getGraphics();
Random random = new Random();
// 创建背景颜色
grap.setColor(new Color(random.nextInt(50)+200,random.nextInt(50)+200,random.nextInt(50)+200));
grap.fillRect(0, 0, width, height);
// 画出边界
grap.setColor(Color.black);
grap.drawRect(0, 0, width-1, height-1);
String key = ""; // 存放生成随机4位验证码
for(int i=0;i<4;i++)
key = key + random.nextInt(10);
//制作干扰
for (int i=0; i<5; i++) {
int x1 = random.nextInt(width);
int x2 = random.nextInt(width);
int y1 = random.nextInt(height);
int y2 = random.nextInt(height);
grap.drawLine(x1, y1, x2, y2);
}
session.setAttribute("key", key);//将验证码存储到session中
grap.setColor(new Color(0, 100, 0));
grap.setFont(new Font("Candara", Font.BOLD, 24));
grap.drawString(key, 8, 16);
grap.dispose();
response.setContentType("image/jpeg");
out.clear();
out = pageContext.pushBody();
OutputStream strm = response.getOutputStream();
ImageIO.write(image, "jpeg", strm);
strm.close();
%>
</body>
</html>