1、创建登录页面login.jsp
2、创建登录逻辑页面doLogin.jsp
3、创建聊天室主页面talk.jsp
4、创建聊天室逻辑页面dotalk.jsp
5、创建退出聊天室页面doLoginout.jsp
下面是我自己的登录界面以及聊天室主界!面
接下来直接放代码
login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>登陆界面</title>
<style type="text/css">
* {
magin: 0 auto;
padding: 0px;
}
.singledog {
width: 440px;
height: 220px;
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
margin: auto;
background: lightpink;
}
</style>
</head>
<body>
<div class="singledog">
<center>
<form action="doLogin.jsp" method="post" name="myform">
<br /> <br />
<p>单身狗聊天室</p>
<input type="text" name="username" /><br />
<br /> <input type="submit" value="登录" />
</form>
</div>
</center>
</body>
</html>
doLogin.jsp
<%@page import="java.util.ArrayList"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
//设置请求和响应的编码集
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
//从页面获取用户名
String username = request.getParameter("username");
if(null == username || "".equals(username)){
response.sendRedirect("login.jsp");
} else {
//获取在线用户名
List<String> users = (List<String>) application.getAttribute("users");
if(null == users){
//第一个用户登录
users = new ArrayList<String>();
}
users.add(username);
application.setAttribute("users", users);
//当前session中存储用户名
session.setAttribute("username", username);
response.sendRedirect("talk.jsp");
}
%>
talk.jsp
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript" src="../js/jquery-1.10.1.js">
function checkInfo(){
var info=myform.contents.value;
if(info==null||info.replace(reg,"")==""){
alert("请输入您想说的话!!!!");
myform.contents.select();
return false;
}else{
return true;
}
}
</script>
<style type="text/css">
*{
margin: 0;
padding: 0;/*所有元素内边距外边距是0*/
}
body{
width: 900px;
margin: 0 auto;
}
.top{
width: 900;
height: 100px;
text-align: center;
font-size: 30px;
font-family: "微软雅黑";
font-style: inherit;
border: 1px solid deeppink;/*设置边框*/
background: url(img/背景图.jpg);
}
.top p{
margin-top: 20px;
}
.left{
width: 203px;
height: 450px;
border: 1px solid deeppink;/*设置边框*/
float: left;
background: url(img/left.jpg);
}
.center{
width: 552px;
height: 450px;
border: 1px solid deeppink;/*设置边框*/
float: left;
background: url(img/背景.jpg);
}
.right{
width: 138px;
height: 450px;
border: 1px solid deeppink;/*设置边框*/
float: left;
background: url(img/right.jpg);
}
.button{
width: 898px;
height: 66px;
border: 1px solid deeppink;/*设置边框*/
clear: both;
background: url(img/button.jpg);
}
.button form{
margin-top: 5px;
}
</style>
<body>
<%
//访问权限控制
String uname = (String) session.getAttribute("username");
if(null == uname || "".equals(uname)){
response.sendRedirect("../login.jsp");
return;
}
//获取在线用户数
List<String> users = (List<String>) application.getAttribute("users");
//获取聊天记录
List<String> words = (List<String>) application.getAttribute("words");
%>
<div class="top">
<p>欢迎进入单身狗聊天室</p>
</div>
<div class="left">
<img src="img/单身狗1.jpg"/>
</div>
<div class="center">
<ul>
<%
if(null != words && words.size()>0){
for(String info : words){
%>
<li><%=info %></li>
<%
}
}
%>
</ul>
</div>
<div class="right">
<%
if(null != users && users.size()>0){
%>
<p>用户在线<%=users.size() %>人</p>
<%
}
%>
<ul>
<%
for(String username : users){
%>
<li><%=username %></li>
<%
}
%>
</ul>
</div>
<div class="button">
<center>
<form action="dotalk.jsp" method="post" name="myform" onsubmit="return checkInfo()">
<p> 您:<select name="status" id="status">
<option value="快乐地">快乐地</option>
<option value="悲伤地">悲伤地</option>
<option value="无聊地">无聊地</option>
<option value="得瑟地">得瑟地</option>
</select>
说:
</p>
<textarea name="msg"></textarea>
<input type="submit" value="发送"/>
<a href="doLoginout.jsp?username=<%=uname%>">退出</a>
</form>
</center>
</div>
</body>
</html>
dotalk.jsp
<%@page import="java.util.ArrayList"%>
<%@page import="java.util.List"%>
<%@page import="java.text.SimpleDateFormat"%>
<%@page import="java.util.Date"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
//设置请求和响应的编码集
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
//从页面获取内容
String status = request.getParameter("status");
String msg = request.getParameter("msg");
//获取用户名
String username = (String) session.getAttribute("username");
Date date = new Date();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
String content = "<li class=\"title\">" + username + " " + status + "说:" + " "
+ format.format(date) + "</li><li class=\"msg\">" + msg + "</li>";
//获取聊天记录
List<String> words = (List<String>) application.getAttribute("words");
if (null == words) {
words = new ArrayList<String>();
}
words.add(content);
application.setAttribute("words", words);
response.sendRedirect("talk.jsp");
%>
doLoginout.jsp
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
//设置请求和响应的编码集
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
//获取在线用户名
List<String> users = (List<String>) application.getAttribute("users");
//获取传入的用户名
String uname = request.getParameter("username");
users.remove(uname);
//application对象重新存入新的List
application.setAttribute("users", users);
//移除session中的属性
session.removeAttribute("username");
//response.sendRedirect("../login.jsp");
%>
<jsp:forward page="login.jsp" />