百度文库(菜鸟版)

 虽然只是一个菜鸟版的百度文库,并且也没做装饰css什么的,但是用了我一个星期的课余时间。。。

遇到很多小困难,但是觉得收获还是挺大的。。意义非凡啊。。。一开始是身心疲惫,现在挺开心的。。。

把学到的知识好好的用上了。。。javase里面的集合,IO流,单例设计模式,jsp里面的jstl,EL表达式,servlet里面的session,,还有 javabean。。。还有对MyEclipse的使用。。。这期间注册遇到很多问题,最后我用输出语句,输出username还有集合list的个数,就解决了。。怪不得老师说,输出语句很强大。。简直就是神句。。。

 

工程名字叫BaiDuWenKu0.5,

在F盘放了两篇文章:劝学.txt 还有师说.txt模拟百度的资源

一共两个包,com.jingtian.controller和com.jingtian.javabean

controller包里面有Login.java  Register.java  Judge.java  LoginOut.java  SelectBooks.java

javabean包里面有User.java Db.java  Book.java

jsp有index.jsp index2.jsp login.jsp register.jsp book.jsp book.jsp

下面是代码

index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page  import="com.jingtian.javabean.*" %>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>


<title>My JSP 'selectBook.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

</head>

<body>
	欢迎您,${user.username}
	<br>
	<a
		href="${pageContext.request.contextPath}/servlet/Judge?function=login">登录</a>
	<a
		href="${pageContext.request.contextPath}/servlet/Judge?function=register">注册</a>
	<a href="${pageContext.request.contextPath}/servlet/LoginOut">注销</a>

	
	<form method="post"
		action="${pageContext.request.contextPath}/servlet/SelectBook">
		<!-- 路径 -->
		<tr>
			<td>书名:<input type="text" name="bookName" value="劝学"> <input
				type="submit" value="提交"></td>
		</tr>
	</form>
	<%
		out.write("sdfdsfddd");
		out.write(request.getContextPath());
		
	 %>
	
	<%
		List<User>list=(ArrayList)Db.getAll();
		out.write(list.size());
		session.setAttribute("list", list);
		 //把模仿数据库的类内容放在session里面的list里面		
	%>
</body>
</html>

index2.jsp

和index.jsp一模一样,因为模仿数据库的类里面的list只能初始化一次,而首页要被多次访问得到,所以就用了替身index2.jsp当首页

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page  import="com.jingtian.javabean.*" %>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>


<title>My JSP 'selectBook.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

</head>

<body>
	欢迎您,${user.username}
	<br>
	<a
		href="${pageContext.request.contextPath}/servlet/Judge?function=login">登录</a>
	<a
		href="${pageContext.request.contextPath}/servlet/Judge?function=register">注册</a>
	<a href="${pageContext.request.contextPath}/servlet/LoginOut">注销</a>

	
	<form method="post"
		action="${pageContext.request.contextPath}/servlet/SelectBook">
		<!-- 路径 -->
		<tr>
			<td>书名:<input type="text" name="bookName" value="劝学"> <input
				type="submit" value="提交"></td>
		</tr>
	</form>

</body>
</html>


Judge.java

一方面练习传值,一方面通过judge这个枢纽来控制往哪重定向

package com.jingtian.controller;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.jingtian.javabean.Db;
import com.jingtian.javabean.User;

public class Judge extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		
		
		String function=request.getParameter("function");
		if(function.equals("login"))
		{
			response.sendRedirect("" + request.getContextPath()+ "/login.jsp");
		}
		else
		{
			response.sendRedirect("" + request.getContextPath()+ "/register.jsp");
		}
	}

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

}


 

Login.jsp

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>登陆界面</title>
</head>
<body>
	<form action="${pageContext.request.contextPath}/servlet/Login"
		method="post">
		帐号:<input type="text" name="username"><br> 
		密码:<input type="password" name="password"><br> 
			<input type="submit" value="登录">
	</form>
</body>
</html>


 


Login.java

package com.jingtian.controller;

import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.jingtian.javabean.User;
import com.jingtian.javabean.Db;

public class Login extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		response.setHeader("Content-type", "text/html;charset=UTF-8");
		OutputStream out = response.getOutputStream();

		String username = request.getParameter("username");
		String password = request.getParameter("password");

		HttpSession session = request.getSession(false);
		ArrayList<User> list = (ArrayList) session.getAttribute("list");
		for (User user : list) {
			if (user.getUsername().equals(username)
					&& user.getPassword().equals(password)) {
				
				session.setAttribute("user", user);// 登录成功,将用户数据放入到Session中
				response.sendRedirect("" + request.getContextPath()+ "/index2.jsp");
//request.getRequestDispatcher("" + request.getContextPath()+ "/index2.jsp").forward(request, response);
				return;// 进行重定向,并且下面的代码不再执行
			}
		}
		out.write("您的用户名或密码错误".getBytes("UTF-8"));
		
	}

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

}


register.jsp

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>注册界面</title>
</head>
<body>
	<form action="${pageContext.request.contextPath}/servlet/Register"
		method="post">
		帐号:<input type="text" name="username"><br> 
		密码:<input type="password" name="password"><br> 
			<input type="submit" value="注册">
	</form>
</body>
</html>


Register.java

 

package com.jingtian.controller;

import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.jingtian.javabean.Db;
import com.jingtian.javabean.User;

public class Register extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		response.setHeader("Content-type", "text/html;charset=UTF-8");
		OutputStream out = response.getOutputStream();

		String username = request.getParameter("username");
		String password = request.getParameter("password");

		HttpSession session = request.getSession(false);
		ArrayList<User> list = (ArrayList) session.getAttribute("list");
		for (User user : list) {
			
			if (user.getUsername().equals(username)) {
				out.write("您注册的用户名已经存在".getBytes("UTF-8"));
				return;
			}

			}
			list.add(new User(username,password));
			session.setAttribute("list", list);
			response.sendRedirect("" + request.getContextPath()+ "/login.jsp");
//request.getRequestDispatcher("" + request.getContextPath()+ "/login.jsp").forward(request, response);
		}
	

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

}


LoginOut.java

package com.jingtian.controller;

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;
import javax.servlet.http.HttpSession;

public class LoginOut extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		HttpSession session = request.getSession(false);// 防止创建Session
		if (session == null) {
			response.sendRedirect(""+request.getContextPath()+"/index2.jsp");
			return;
		}

		session.removeAttribute("user");
		response.sendRedirect(""+request.getContextPath()+"/index2.jsp");
		


	}

	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		doGet(request, response);
	}

}


book.jsp

<%@ page language="java" import="java.util.*" import="java.io.*"
	pageEncoding="UTF-8"%>
<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://"
			+ request.getServerName() + ":" + request.getServerPort()
			+ path + "/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>

<style type="text/css">
textarea {
	width: 900px;
	height: 300px;
	display: block;
	overflow: scroll;
}
</style>
</head>

<body>
	<jsp:useBean id="book" class="com.jingtian.javabean.Book"
		scope="page"></jsp:useBean>
	<jsp:setProperty name="book" property="name" value="${bookName}"/>
	
	
	<h2 align="right">用户名:${user.username}</h2>
	<table border="10" width="70%" height="80%" align="center">
		<caption><h1>${bookName}</h1></caption>
		<tr align="center">
			<td><textarea>
		<%
			book.display(response, out);
		%>
		</textarea></td>

		</tr>

	</table>
</body>

</html>


<%--
	String s = (String) request.getSession().getAttribute("bookName");
	book.setName(s);
	book.display(response, out);
	//这里用javaBean代替,jsp里面最好没有java代码
--%>


showUsers.jsp

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://"
			+ request.getServerName() + ":" + request.getServerPort()
			+ path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>My JSP 'showUsers.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

</head>

<body>

	<c:forEach var="a" items="${list}">  
	${a.username}  
	${a.password}<br/>  
	</c:forEach>
</body>
</html>
 

这是首页,那行字是测试代码,忘删了,嘿嘿

登陆

登陆成功

 

搜索

注册

 


注册成功

注册成功后登陆

再注册一个

后台显示所有用户和密码

 

登录失败和注册失败分别显示用户名或密码错误和注册用户已存在,嘿嘿

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值