关于登陆界面
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@page import = "register.Register" %>
<%@page import="java.text.SimpleDateFormat"%>
<%@page import="java.util.*" %>
<%@ page import ="javax.servlet.http.*"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
<script>
function reset(){
document.getElementById("UserName").value = "";
document.getElementById("Password").value = "";
}
function Userregister(){
window.location.href = "registerForm.jsp";
}
</script>
</head>
<body>
<h1>我的好友录</h1>
<hr>
<form action = "Login.jsp" method = post>
<table>
<tr><td style = "text-align:right">用户名称:</td><td><input type = "text" name = "UserName" id = "UserName"><td></td>
<tr><td style = "text-align:right"> 密码:</td><td><input type = "password" name = "Password" id = "Password"></td></tr>
</table>
<input type ="submit" id = "登陆" value = "登陆">
<input type ="button" onclick="return reset();" id = "重置" value = "重置">
<a onclick = "return Userregister();">注册</a>
</form>
<hr>
<%
String logErr =(String)(session.getAttribute("Loerr"));
if(logErr == null){
out.print("");
}else{
out.print("请重试");
session.setAttribute("Loerr", null);
}
%>
</body>
</html>
`
![在这里插入图片描述](https://img-blog.csdnimg.cn/2018121311241866.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDA4MjExMg==,size_16,color_FFFFFF,t_70)
登陆后的代码处理 这里用到的是jsp 处理后的结果可以直接重定向
也可以直接改成servle
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@page import = "register.Register" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>
<%
String username = request.getParameter("UserName");
String password = request.getParameter("Password");
String sql = "select password from alluser where username = "+"'"+username+"'";
String newpassword = Register.getResult(username,sql);
Cookie name_cookie = new Cookie("userName",username);
name_cookie.setMaxAge(1*60*60);
response.addCookie(name_cookie);
if(password.equals(newpassword)){
response.sendRedirect("index.jsp");
}else{
session.setAttribute("Loerr", "err");
response.sendRedirect("LofinForm.jsp");
}
%>
<%
String usernumber = request.getParameter("UserName");
session.setAttribute("usernumber1", usernumber);
String nsql = "create table alluser"+usernumber+"(name varchar2(11),sex varchar2(11),age varchar2(11),QQ number(11),phone number(11),e_mail varchar2(50),loc varchar2(500))";
Register.saveInOracle(nsql);
%>
</body>
</html>
注册界面同上 同样也是访问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>
<script>
function reset(){
document.getElementById("UserName").value = "";
document.getElementById("Password").value = "";
document.getElementById("RePassword").value = "";
}
function myLogin(){
window.location.href="LofinForm.jsp";
}
</script>
</head>
<body>
<h1>我的好友录</h1>
<form action = "register.jsp" method = post>
<table>
<tr><td style = "text-align:right">用户名称:</td><td><input type = "text" name = "UserName" id = "UserName"><td></td>
<tr><td style = "text-align:right"> 密码:</td><td><input type = "password" name = "Password" id = "Password"></td></tr>
<tr><td style = "text-align:right"> 确认密码:</td><td><input type = "password" name = "RePassword" id = "RePassword"></td></tr>
</table>
<input type = "submit" value = "注册">
<input type = "button" onclick = "return reset();" value = "重置">
<input type = "button" onclick = "return myLogin();" value = "返回">
</form>
<%
String r = String.valueOf(session.getAttribute("err"));
String show = "";
if(r==null){
out.print("");
}else if(r.equals("0")){
out.print("已经被注册");
session.setAttribute("err",null);
}else if(r.equals("1")){
out.print("注册成功");
session.setAttribute("err",null);
}
%>
</body>
</html>
注册的jsp为:
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@page import = "register.Register" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>
<%
int result = 0;
String Userid = request.getParameter("UserName");
String Password = request.getParameter("Password");
String sql = "insert into alluser values ("+"'"+Userid+"'"+","+"'"+Password+"')";
result = Register.saveInOracle(Userid,Password,sql);
if(result == 0){
session.setAttribute("err", "0");
}else{
session.setAttribute("err", "1");
}
response.sendRedirect("registerForm.jsp");
%>
</body>
</html>
在这里进行功能选项
<%@ 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>
<h1>
我的好录
</h1>
<hr>
<a href = "friendsInfo.jsp">查询所有好友信息</a><br>
<a href = "queryByName.jsp">按照姓名查找好友信息</a>
<hr>
</body>
</html>
好友查询 按照名字查询的界面
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@page import = "java.sql.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>我的好友录</h1>
<hr>
<form action = "selectByname" method = post>
<table>
<tr>
<td>
<input type= "text" name = "selectbyname"></td><td><input type = "submit" value = "查询"></td>
<td><a href = "index.jsp">返回主页</a></td><td><a href = "LofinForm.jsp"> 注销</a></td>
</tr>
</table>
</form>
<hr>
<table border="1" style = "width:100%">
<tr style="background-color: blue">
<td>姓名</td><td>性别</td><td>年龄</td><td>QQ</td><td>电话</td><td>E-MAIL</td><td>住址</td>
</tr>
<%
ResultSet rs = (ResultSet)request.getAttribute("result");
if(rs == null){
out.print("");
}else{
while(rs.next()){
out.print("<tr>");
for(int i =1;i<8;i++){
out.print("<td>");
out.print(rs.getObject(i));
out.print("</td>");
}
out.print("</tr>");
request.setAttribute("result",null);
}
}
%>
</table>
</body>
</html>
这里的action 方法用到了web.xml servlet 看一下servlet的配置
在这里插入代码片
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
<display-name>text5</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>init</servlet-name>
<servlet-class> register.selectName</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>init</servlet-name>
<url-pattern>/selectByname</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>init2</servlet-name>
<servlet-class>register.insertFirend</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>init2</servlet-name>
<url-pattern>/insertFirend</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>init3</servlet-name>
<servlet-class>register.updateFirend</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>init3</servlet-name>
<url-pattern>/updateFirend</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>init4</servlet-name>
<servlet-class>register.deleteFirend</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>init4</servlet-name>
<url-pattern>/deleteFirend</url-pattern>
</servlet-mapping>
</web-app>
注:根据url-pattern找到跳转的请求
根据server-name去找所对应的类
两个servlet-name必须相同才能找到
servlet-class 放全名字 包名.类名字
看一眼selectName类
package register;
import java.io.IOException;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import text5.OracleJdbcTest;
public class selectName extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;
public static String name = "";
public static String sql = "";
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// TODO Auto-generated method stub
String username = "";
Cookie[] myCookie = req.getCookies();
for(Cookie i : myCookie) {
if(i.getName().equals("userName")) {
username = i.getValue();
}
}
name = req.getParameter("selectbyname");
sql = "select * from alluser"+username+" where name like '%"+name+"%'";
req.setAttribute("result",getquery(sql));
req.getRequestDispatcher("queryByName.jsp").forward(req, resp);
}
public static ResultSet getquery(String sql) {
ResultSet rs = null;
try {
PreparedStatement s = OracleJdbcTest.getConn().prepareStatement(sql);
rs = s.executeQuery();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return rs;
}
}
其中调用了连接池的包 将jdbc(oracle)的连接存到了一个text5下的OracleJdbcTest中 代码如下
package text5;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class OracleJdbcTest {
private static Connection conn = null;
private static String driver = "oracle.jdbc.driver.OracleDriver"; //驱动
private static String username = "scott";
private static String url = "jdbc:oracle:thin:@//localhost:1521/orcl"; //连接字符串
private static String password = "980204lq";
public static synchronized Connection getConn(){
if(conn == null){
try {
Class.forName(driver);
conn = DriverManager.getConnection(url, username, password);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}catch (SQLException e) {
e.printStackTrace();
}
}
return conn;
}
//查询的方法
public String passwordQuery(String sql,boolean b) {
String password = "";
try {
PreparedStatement s = getConn().prepareStatement(sql);
ResultSet rs = s.executeQuery();
while(rs.next()) {
password = rs.getString("password");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return password;
}
public static void query(String sql) throws SQLException{
PreparedStatement pstmt;
pstmt = getConn().prepareStatement(sql);
pstmt.execute();
pstmt.close();
}
public static ResultSet getquery(String sql) {
ResultSet rs = null;
try {
PreparedStatement s = getConn().prepareStatement(sql);
rs = s.executeQuery();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return rs;
}
}
我的userName默认是scott 可以根据个人喜好进行改变
接下来是第一个功能看所有好友的信息 其中的功能包括增删改查 数据库的基本操作 以及返回主页和注销
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@page import = "register.Register" %>
<%@page import = "java.sql.*"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
<script type = "text/javascript" src = "jquery-1.12.0.min.js"></script>
<script>
function setSelectUserNo(thiss){
if(thiss.value==1){
thiss.value=0;thiss.checked=0;
}else{
thiss.value=1;
}
}
function resetmyDiv(){
document.getElementById("mydiv").value = "";
}
$(function(){
$("a[href='#']:eq(0)").click(function(){
var name=$(":radio:checked").parent().next("td").next("td").text()
var sex=$(":radio:checked").parent().parent().children("td:eq(3)").text()
var age=$(":radio:checked").parent().parent().children("td:eq(4)").text()
var qq=$(":radio:checked").parent().parent().children("td:eq(5)").text()
var phone=$(":radio:checked").parent().parent().children("td:eq(6)").text()
var email=$(":radio:checked").parent().parent().children("td:eq(7)").text()
var address=$(":radio:checked").parent().parent().children("td:eq(8)").text()
location.href="updateFirend.jsp?id="+$(":radio:checked").val()+"&name="+name+"&sex="+sex+"&age="+age+"&qq="+qq+"&phone="+phone+"&email="+email+"&address="+address
})
$("a[href='*']:eq(0)").click(function(){
var phone=$(":checkbox:checked").parent().parent().children("td:eq(6)").text()
$.post("deleteFirend",{"phone":phone},function(data){
if(confirm("确定删除?"))
location.href="friendsInfo.jsp"
})
return false
})
})
</script>
</head>
<body onclick = "resetmyDiv();">
<h1>
我的好友录
</h1>
<table>
<tr>
<td style = "width = 20%">
<a href = "insertFirend.jsp">添加新好友</a>
</td>
<td style = "width = 20%">
<a href = "*">删除选中好友</a>
</td>
<td style = "width = 20%">
<a href = "#">修改选中好友</a>
</td>
<td style = "width = 20%">
<a href = "index.jsp">返回主页</a>
</td>
<td style = "width = 20%">
<a href = "LofinForm.jsp">注销</a>
</td>
<tr>
</table>
<form>
<table border="1" style = "width:100%">
<tr style="background-color: blue">
<td>修改</td><td>删除</td><td>姓名</td><td>性别</td><td>年龄</td><td>QQ</td><td>电话</td><td>E-MAIL</td><td>住址</td>
</tr>
<%
String usernumber = (String)session.getAttribute("usernumber1");
String sql = "select * from alluser"+usernumber;
ResultSet rs = text5.OracleJdbcTest.getquery(sql);
String result = "";
while(rs.next()) {
out.print("<tr>");
out.print("<td>");
out.print("<input type = \"radio\" onclick = \"setSelectUserNo(this);\">");
out.print("</td>");
out.print("<td>");
out.print("<input type = \"checkbox\">");
out.print("</td>");
for(int i =1;i<8;i++){
out.print("<td>");
out.print(rs.getObject(i));
out.print("</td>");
}
out.print("</tr>");
}
out.print(result);
//scott 男 18 476699186 1310406235 476699186@qq.com 学府路
//root 男 18 876699186 1350406235 876699186@qq.com 学府路74号
%>
</table>
</form>
<div id = "mydiv">
<%
String s = (String)request.getAttribute("deleteResult");
if(s == null){
out.print("");
}else{
out.print("删除成功");
request.setAttribute("deleteResult", null);
}
%>
</div>
</body>
</html>
其中用到的j-query 目的是找到表格中,用checkbox或者radio被勾选住 那一行的信息 根据节点进行查找 其余还是访问servlet
当你点击修改好友信息的时候 这里操作是得到好友原来的信息给一个界面 先删除原来的好友信息,然后再把改好的内容存入数据库操作如下
给到一个界面
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@page import = "register.updateFirend" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action = "updateFirend" method = post>
<table>
<tr><td style = "text-align:right">姓名</td><td><input type = "text" name = "name" id = "name" value ="${param.name }" ></td></tr>
<tr><td style = "text-align:right">性别</td><td><input type = "text" name = "sex" id = "sex" value = "${param.sex }"></td></tr>
<tr><td style = "text-align:right">年龄</td><td><input type = "text" name = "age" id = "age" value = "${param.age }"></td></tr>
<tr><td style = "text-align:right">QQ</td><td><input type = "text" name = "QQ" id = "QQ" value = "${param.qq }"></td></tr>
<tr><td style = "text-align:right">电话</td><td><input type = "text" name = "phone" id = "phone" value = "${param.phone }"></td></tr>
<tr><td style = "text-align:right">E-mail</td><td><input type = "text" name = "E-mail" id = "E-mail" value = "${param.email }"></td></tr>
<tr><td style = "text-align:right">住址</td><td><input type = "text" name = "loc" id = "loc" value = "${param.address }"></td></tr>
<%
String on = request.getParameter("name");
String os = request.getParameter("sex");
String oa = request.getParameter("age");
String oq = request.getParameter("QQ");
String op = request.getParameter("phone");
String oe = request.getParameter("E-mail");
String ol = request.getParameter("loc");
updateFirend.getOldAnswer(on, os, oa, oq, op, oe, ol);
%>
<tr><td><input type = "submit" value = "保存 "></td><td><a href = "friendsInfo.jsp">返回</a></td></tr>
</table>
</form>
<%
String r = (String)request.getAttribute("updateResult");
if(r == null){
out.print("");
}else{
out.print("修改成功");
request.setAttribute("updateResult", null);
}
%>
</body>
</html>
传入servert类中的操作如下
package register;
import java.io.IOException;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import text5.OracleJdbcTest;
public class updateFirend extends HttpServlet{
public static String oldname = "";
public static String oldsex = "";
public static String oldage = "";
public static String oldQQ = "";
public static String oldphone = "";
public static String oldemail = "";
public static String oldloc = "";
/**
*
*/
private static final long serialVersionUID = 1L;
public static void getOldAnswer (String on,String os,String oa,String oq, String op,String oe, String ol) {
oldname = on;
oldsex = os;
oldage = oa;
oldQQ = oq;
oldemail = oe;
oldphone = op;
oldloc = ol;
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String username = "";
Cookie[] myCookie = req.getCookies();
for(Cookie i : myCookie) {
if(i.getName().equals("userName")) {
username = i.getValue();
}
}
String sqll = "delete from alluser"+username+" where phone = "+"'"+oldphone+"'";
String sqllc = "commit";
try {
OracleJdbcTest.query(sqll);
OracleJdbcTest.query(sqllc);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
req.setCharacterEncoding("utf-8");
String name = req.getParameter("name");
String sex = req.getParameter("sex");
String age = req.getParameter("age");
String QQ = req.getParameter("QQ");
String phone = req.getParameter("phone");
String email = req.getParameter("E-mail");
String loc = req.getParameter("loc");
String sql = "insert into alluser123 values ('"+name+"','"+sex+"','"+age+"',"+QQ+","+phone+",'"+email+"','"+loc+"')";
String sqlc = "commit";
OracleJdbcTest.getquery(sql);
OracleJdbcTest.getquery(sqlc);
req.setAttribute("updateResult", "1");
req.setAttribute("nochange", "2");
req.getRequestDispatcher("updateFirend.jsp").forward(req, resp);
}
}
删除好友也是获得被选中好友那一行的手机号 根据手机号进行删除 注:将手机号设置成主键 或者用其他的约束条件,反正不可以在添加的时候重复
package register;
import java.io.IOException;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Cookie;
import text5.OracleJdbcTest;
public class deleteFirend extends HttpServlet{
/**
*
*/
private static final long serialVersionUID = 1L;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String username = "";
Cookie[] myCookie = req.getCookies();
for(Cookie i : myCookie) {
if(i.getName().equals("userName")) {
username = i.getValue();
}
}
String phone = req.getParameter("phone");
String sqll = "delete from alluser"+username+" where phone = "+"'"+phone+"'";
String sqllc = "commit";
try {
OracleJdbcTest.query(sqll);
OracleJdbcTest.query(sqllc);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
req.setAttribute("deleteResult", "11");
req.getRequestDispatcher("friendsInfo.jsp").forward(req, resp);;
}
}
增添好友也是跳转到一个网页 然后用servlet的方法将你填入的信息传送给数据库并保存
<%@ 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>
<form action = "insertFirend" method = post>
<table>
<tr><td style = "text-align:right">姓名</td><td><input type = "text" name = "name" id = "name"></td></tr>
<tr><td style = "text-align:right">性别</td><td><input type = "text" name = "sex" id = "sex"></td></tr>
<tr><td style = "text-align:right">年龄</td><td><input type = "text" name = "age" id = "age"></td></tr>
<tr><td style = "text-align:right">QQ</td><td><input type = "text" name = "QQ" id = "QQ"></td></tr>
<tr><td style = "text-align:right">电话</td><td><input type = "text" name = "phone" id = "phone"></td></tr>
<tr><td style = "text-align:right">E-mail</td><td><input type = "text" name = "E-mail" id = "E-mail"></td></tr>
<tr><td style = "text-align:right">住址</td><td><input type = "text" name = "loc" id = "loc"></td></tr>
<tr><td><input type = "submit" value = "保存 "></td><td><a href = "friendsInfo.jsp">返回</a></td></tr>
</table>
<%
String s = (String)request.getAttribute("resultinsert");
if(s==null){
out.print("");
}else{
out.print("添加成功");
request.setAttribute("resultinsert", null);
}
%>
</form>
</body>
</html>
servlet类中的操作如下
package register;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import text5.OracleJdbcTest;
public class insertFirend extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 1L;
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String username = "";
Cookie[] myCookie = req.getCookies();
for(Cookie i : myCookie) {
if(i.getName().equals("userName")) {
username = i.getValue();
}
}
req.setCharacterEncoding("utf-8");
String name = req.getParameter("name");
String sex = req.getParameter("sex");
String age = req.getParameter("age");
String QQ = req.getParameter("QQ");
String phone = req.getParameter("phone");
String Email = req.getParameter("E-mail");
String loc = req.getParameter("loc");
String sql = "insert into alluser"+username+" values ('"+name+"','"+sex+"','"+age+"',"+QQ+","+phone+",'"+Email+"','"+loc+"')";
String sqlc = "commit";
OracleJdbcTest.getquery(sql);
OracleJdbcTest.getquery(sqlc);
req.setAttribute("resultinsert","1" );
req.getRequestDispatcher("insertFirend.jsp").forward(req, resp);
}
}
其余的注销。返回主页就是用到了简单的超链接
为了保证每一个用户,在login中我也用到了cookie操作 将个人id设置成一个cookie时间为一小时 可以根据需求进行相应的更改