JavaWeb 例子 JDBC+JSP登陆注册留言板
注册页面:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<!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>Insert title here</title>
</head>
<body>
<form action="chuli.jsp" method="post">
<input type="hidden" name="sub_type" value="reg" />
<input type="text" name="username" placeholder="输入用户名" />
<input type="password" name="password" placeholder="输入密码" />
<input type="password" name="password1" placeholder="确认密码" />
<input type="submit" value="注册" /><a href="denglu.jsp">返回登陆</a>
</form>
</body>
</html>
登录页面:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!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>Insert title here</title>
</head>
<body>
<form action="chuli.jsp" method="post">
<input type="hidden" name="sub_type" value="log" />
<input type="text" name="username" placeholder="输入用户名" />
<input type="password" name="password" placeholder="输入密码" />
<input type="submit" value="登录" /><a href="zhuce.jsp">注册新用户</a>
</form>
</body>
</html>
主页-留言板页:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="com.util.User,java.util.*,com.test.*,com.util.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<%
Object obj1 = session.getAttribute("currentUser");
if (obj1 == null) {
response.sendRedirect("denglu.jsp");
}
%>
<%
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
%>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="chuli.jsp" method="post" >
<input type="hidden" name="sub_type" value="tex" />
<textarea rows="4" cols="12" name="text"></textarea>
<input type="submit" value="提交">
</form>
<%
MethodDal m=new MethodDal();
List<Message> list=m.selectMessage();
if(list!=null){
for(Message l: list ){
out.print(l.getUname()+" | ");
out.print(l.getDate()+"<br>");
out.print(l.getSays()+"<hr>");
}
}
%>
</body>
</html>
逻辑处理页面:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="com.util.User,com.util.Message,java.util.*,com.test.*" errorPage="error.jsp" %>
<%
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
%>
<%
String sub_type = request.getParameter("sub_type");
String username = request.getParameter("username");
String password = request.getParameter("password");
String password1 = request.getParameter("password1");
MethodDal m=new MethodDal();
Message says=new Message();
if("reg".equals(sub_type)) {
if (!password.equals(password1)) {
out.print("两次输入的密码不一致 !");
} else {
String selectname=m.selectName(username);
if (!selectname.equals("no")) {
out.print("用户名已经存在 !");
} else {
User user = new User();
user.setUsername(username);
user.setPassword(password);
m.insertData(user);
out.print("注册成功 !");
}
}
out.print("<br>");
out.print("<a href='denglu.jsp'>跳转登陆</a>");
}
if("log".equals(sub_type)) {
String selectname=m.selectName(username);
application.setAttribute("name",username);
String spwd=m.selectPwd(password);
if(username.equalsIgnoreCase(selectname)&&password.equalsIgnoreCase(spwd)) {
session.setAttribute("currentUser", 1);
response.sendRedirect("Maintest.jsp");
} else {
out.print("用户名或密码不正确 !");
}
out.print("<br>");
out.print("<a href='denglu.jsp'>跳转登陆</a>");
}
if("tex".equals(sub_type)){
String say = request.getParameter("text");
Object sobj=application.getAttribute("name");//获取用户名
String sname=(String)sobj;
Date d=new Date();
System.out.println(sname);
says.setUname(sname);
says.setSays(say);
says.setDate(new Date().toLocaleString());
int i=m.insertSays(says);
response.sendRedirect("Maintest.jsp");
}
%>
JDBC设置工具类:
package com.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import com.util.JdbcConnectionUtil;
public class JdbcConnectionUtil {
private static final String USERNAME = "test";
private static final String PASSWORD = "test";
private static final String URL = "jdbc:oracle:thin:@localhost:1521:xe";
private static final String DRIVERCLASSNAME = "oracle.jdbc.OracleDriver";
public static Connection getConnection(){
Connection conn=null;
try {
Class.forName(DRIVERCLASSNAME);
conn=DriverManager.getConnection(URL,USERNAME,PASSWORD);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
public static void destroy(Connection conn){
if(conn!=null){
try {
conn.close();
conn=null;
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
System.out.println(JdbcConnectionUtil.getConnection());
}
}
数据库增删改查工具类:
package com.test;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import com.util.JdbcConnectionUtil;
import com.util.Message;
import com.util.User;
public class MethodDal {
private Connection con;
private PreparedStatement pste;
private ResultSet rs;
//向表中添加数据
public int insertData(){
init();
int i=-1;
String sql="insert into puser values('c','c')";
try {
pste=con.prepareStatement(sql);
i=pste.executeUpdate();//针对于增删改数据吗,返回受影响的行数
} catch (SQLException e) {
e.printStackTrace();
}
return i;
}
//向表中添加数据
public int insertData(User user){
init();
int i=-1;
String sql="insert into puser values(?,?)";
try {
pste=con.prepareStatement(sql);
pste.setString(1,user.getUsername());
pste.setString(2, user.getPassword());
i=pste.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
return i;
}
//删除记录
public int deleteDate(int id){
return 0;
}
//查现有姓名
public String selectName(String name){
init();
String sql="select * from puser p where p.pname=?";
try {
pste=con.prepareStatement(sql);
pste.setString(1,name);
rs = pste.executeQuery();
while(rs.next()) {
String pname=rs.getString("pname");
if(pname!=null){
return pname;
}
}
} catch (SQLException e) {
e.printStackTrace();
}
return "no";
}
//根据姓名查密码
public String selectPwd(String name){
init();
String sql="select * from puser p where p.pname=?";
try {
pste=con.prepareStatement(sql);
pste.setString(1,name);
rs = pste.executeQuery();
while(rs.next()) {
String pwd=rs.getString("ppassword");
return pwd;
}
} catch (SQLException e) {
e.printStackTrace();
}
return "wu";
}
//根据添加信息
public int insertSays(Message m){
init();
int i=-1;
String sql="insert into pmessage values(?,?,?)";
try {
pste=con.prepareStatement(sql);
pste.setString(1,m.getUname());
pste.setString(3,m.getDate());
pste.setString(2,m.getSays());
i=pste.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
return i;
}
//查询所有数据
public List<Message> selectMessage() {
String sql = "select pname,says,ptime from pmessage order by ptime desc";
init();
List<Message> list = new ArrayList<Message>();
try {
pste = con.prepareStatement(sql);
rs = pste.executeQuery();
while (rs.next()) {
Message au = new Message();
au.setUname(rs.getString(1));
au.setSays(rs.getString(2));
au.setDate(rs.getString(3));
list.add(au);
}
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
public void init(){
con=JdbcConnectionUtil.getConnection();
}
}
工具类-留言信息:
package com.util;
public class Message {
private String uname;
private String date;
private String says;
public String getUname() {
return uname;
}
public void setUname(String uname) {
this.uname = uname;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
public String getSays() {
return says;
}
public void setSays(String says) {
this.says = says;
}
@Override
public String toString() {
return "Says [uname=" + uname + ", date=" + date + ", says=" + says + "]";
}
}
工具类-用户信息:
package com.util;
public class User {
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
JavaWeb 例子 JDBC+JSP登陆注册留言板的更多相关文章
- JSP简易留言板
写在前面 在上篇博文JSP内置对象中介绍JSP的9个内置对象的含义和常用方法,但都是比较理论的知识.今天为大家带来一个小应用,用application制作的简易留言板. 包括三个功能模块:留言提交.留 ...
- 使用jsp,tomcat实现用户登录注册留言的代码
以下jsp中,未使用样式表对网页进行排版和表单的验证(每个jsp的表单填写的时候应该进行空值与空格的验证,防止提交时出错) 所有错误,链接到error.jsp <%@ page language ...
- jsp中运用application实现共享留言板功能
jsp中application的知识点总结: 1.一个Web应用程序启动后,将会自动创建一个application对象,在整个应用程序的运行过程中只有这一个application对象,即所有访问该网站 ...
- jsp 用application对象制作留言板
<%@ page contentType="text/html; charset=gb2312"%> <html> <body> <for ...
- javaweb 登陆注册页面
视图的数据修改,表中也修改引用工具类用<%@ page import=""%> <%@ page import="java.util.Date" ...
- 用户登陆注册【JDBC版】
前言 在讲解Web开发模式的时候,曾经写过XML版的用户登陆注册案例!现在在原有的项目上,使用数据库版来完成用户的登陆注册!如果不了解的朋友,可以看看我Web开发模式的博文! 本来使用的是XML文件作 ...
- 一、JDBC的概述 二、通过JDBC实现对数据的CRUD操作 三、封装JDBC访问数据的工具类 四、通过JDBC实现登陆和注册 五、防止SQL注入
一.JDBC的概述###<1>概念 JDBC:java database connection ,java数据库连接技术 是java内部提供的一套操作数据库的接口(面向接口编程),实现对数 ...
- jsp留言板雏形
编写一个简单的留言簿,实现添加留言和显示留言内容的功能 <%@ page language="java" contentType="text/html; chars ...
- PHP基础知识总结(四) 留言板例子 知识应用
1.留言板显示页面:note.php <?php $host = "127.0.0.1"; $user = "root"; $pwd = "zs ...
随机推荐
- RabbitMQ消息队列系列教程(一)认识RabbitMQ
摘要 RabbitMQ是最为流行的消息中间件,是处理高并发业务的利器.本系列教程,将跟大家一起学习RabbitMQ. 目录 RabbitMQ是什么? RabbitMQ的特点是什么? 一.RabbitM ...
- 父类清除浮动的原因、(清除浮动代码,置于CSS中方便调用)
浮动因素在静态网页制作中经常被应用到,比如要让块级元素不独占一行,常常应用设置float的方式来实现.但是应用的时候会发现,设置了子类浮动后,未给父类清除浮动,这样就会造成一下问题: 1.浮动的元素会 ...
- 安卓自定义控件(四)实现自定义Layout
本来我是不准备写这篇文章的,我实在想不出有什么样奇怪的理由,会去继承ViewGroup然后自定义一个布局,大概是我的项目经验还不够吧,想了好久,想到了这样一个需求: 需求 如图:在项目中经常有一个这样 ...
- UTF-8和UTF-8无BOM,一个会导致文件中中文变量无法匹配的bug
昨晚用dom4j中的selectSingleNode解析xml,匹配节点. 发现匹配不到,但是确实存在该节点 将regex改为regex1后则可以匹配,也就是说文件中的"阿里旺旺" ...
- APP加固技术历程及未来级别方案:虚机源码保护
传统App加固技术,前后经历了四代技术变更,保护级别每一代都有所提升,但其固有的安全缺陷和兼容性问题始终未能得到解决.而下一代加固技术-虚机源码保护,适用代码类型更广泛,App保护级别更高,兼容性更强 ...
- pytesseract使用
1.安装pip install pytesseract 2.安装tesseract-ocr,下载地址:https://github.com/UB-Mannheim/tesseract/wiki,我安装 ...
- Linux系统bashshell之别名
1.别名的查看: 命令查看:alias 配置文件查看:cat ~/.bashrc 2:别名设置: alias cdnet="cd /etc/sysconfig/network-scri ...
- angular指令监听ng-repeat渲染完成后执行自定义事件方法
今天工作中遇到需要用到ng-repeat遍历渲染完后执行某个操作,angular本身并没有提供监听ng-repeat渲染完成的指令,所以需要自己创建自定义指令. 在ng-repeat模板实例内部会暴露 ...
- Javascript 数组(Array)相关内容总结
创建数组 var colors = new Array(); //创建新数组 var num = new Array(3); //创建包含三项的新数组 var names = new Array(&q ...
- 垃圾陷阱洛谷dp
题目描述 卡门――农夫约翰极其珍视的一条Holsteins奶牛――已经落了到“垃圾井”中.“垃圾井”是农夫们扔垃圾的地方,它的深度为D(2<=D<=100)英尺. 卡门想把垃圾堆起来,等到 ...