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 ...
随机推荐
- CSS样式命名整理(非原创)
非原创,具体出自哪里忘了,如果侵害您的利益,请联系我. CSS样式命名整理 页面结构 容器: container/wrap 整体宽度:wrapper 页头:header 内容:content 页面主体 ...
- Android WebView 上传各种文件(包括拍照 录像 录音 文件 音乐 等,用到图片或拍照的,可以参考下)
我也是从网上扒下来的,经过多次实验,找到了个好用的.网上能搜到最多的也就是这个解决方案,我英文不好,也没仔细研究,但大多数都是出自这: http://stackoverflow.com/questio ...
- cocos2dx3.0导出自定义类到lua的方法详细步骤
我写了一个用3.0的工具导出类到lua,自动生成代码的方法. 以前要导出c++类到lua,就得手动维护pkg文件,那简直就是噩梦,3.0以后就会感觉生活很轻松了. 下面我就在说下具体做法.1.安装必要 ...
- 校验ISBN的方法
国际标准书号(International Standard Book Number,ISBN:是国际通用的图书或独立的出版物(除定期出版的期刊)代码.出版社可以通过国际标准书号清晰的辨认所有非期刊书 ...
- Thinkphp导入外部类的方法
相信很多人在使用TP时候都苦恼使用外部类各种不成功 下面为大家详细介绍下引用方法和注意细节 手动加载第三方类库 由于第三发类库没有具体的命名空间,所以需要使用以下几种方法手动导入 1.import方法 ...
- 在使用ajax实现三级联动调用数据库数据并通过调出的数据进行二级表单查询
在使用ajax实现三级联动查询数据库数据后再使用ajax无刷新方式使用三级联动调出的数据进行二级查询 但是现在遇到问题,在二级查询的时候期望是将数据以表格的形式展示在三级联动的下方,但是现在在查询后会 ...
- Scala入门系列(七):面向对象之继承
extends 与Java一样,也是使用extends关键字,使用继承可以有效复用代码 class Person { private var name = "leo" def ge ...
- Python函数篇(5)-装饰器及实例讲解
1.装饰器的概念 装饰器本质上就是一个函数,主要是为其他的函数添加附加的功能,装饰器的原则有以下两个: 装饰器不能修改被修饰函数的源代码 装饰器不能修改被修改函数的调用方式 装饰器可以简单的理 ...
- 记一次高并发场景下.net监控程序数据上报的性能调优
最近在和小伙伴们做充电与通信程序的架构迁移.迁移前的架构是,通信程序负责接收来自充电集控设备的数据实时数据,通过Thrift调用后端的充电服务,充电服务收到响应后放到进程的Queue中,然后在管理线程 ...
- UVA - 11082 Matrix Decompressing(最大流+行列模型)
题目大意:给出一个R行C列的矩阵,如今给出他的前1-R行和 && 前1-C列和,问这个矩阵原来是如何的,要求每一个元素大小在1-20之间 解题思路:将每一行连接到超级源点,容量为该行的 ...