百度文库(菜鸟版)

来源:互联网 发布:t5577卡解密软件 编辑:程序博客网 时间:2024/05/18 03:12

 虽然只是一个菜鸟版的百度文库,并且也没做装饰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><ahref="${pageContext.request.contextPath}/servlet/Judge?function=login">登录</a><ahref="${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="劝学"> <inputtype="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><ahref="${pageContext.request.contextPath}/servlet/Judge?function=login">登录</a><ahref="${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="劝学"> <inputtype="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);// 防止创建Sessionif (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> 

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

登陆

登陆成功

 

搜索

注册

 


注册成功

注册成功后登陆

再注册一个

后台显示所有用户和密码

 

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