Struts2 --简单留言系统
1.创建数据表,与servlet中相同
2.创建web项目,添加struts2模块,url 选 /*,web.xml中会自动注册struts2,同时src下会自动生成struts2配置文件struts.xml
3.创建JDBC以及两个pojo类
4.编写登录页面login.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head> <title>登录页面</title> <!--
<link rel="stylesheet" type="text/css" href="styles.css">
--> </head> <body>
<s:form action="LoginAction" method="post" theme="simple">
<table>
<caption>用户登录</caption>
<tr>
<td>用户名</td>
<td>
<s:textfield name="user.username" size="20" />
</td>
</tr>
<tr>
<td>密码</td>
<td>
<s:password name="user.password" size="20" />
</td>
</tr>
</table>
<s:submit value="提交" />
<s:reset value="重置" />
<input type="button" value="注册" />
</s:form>
</body>
</html>
5.编写LoginAction,并配置struts.xml
public class LoginAction extends ActionSupport{
private UserTable user;
public String execute() throws Exception{
ActionContext context=ActionContext.getContext();
Map session=context.getSession();
String username=user.getUsername();
String password=user.getPassword();
boolean validated=false;
UserTable validatedUser=null;
SqlserverDBConn DBConn=new SqlserverDBConn();
String sql="select * from TEST..userTable";
ResultSet rs=DBConn.executeQuery(sql);
while(rs.next()){
if(rs.getString("username").equals(username)&&rs.getString("password").equals(password)){
validatedUser=new UserTable();
validatesUser.setId(rs.getInt(1));
validatedUser.setUsername(username);
validatedUser.setPassword(password);
session.put("user", validatedUser);
validated=true;
}
}
if(validated){
List<LyTable> al=new ArrayList();
String listSql="select * from TEST..lyTable";
rs=DBConn.executeQuery(listSql);
LyTable ly=null;
while(rs.next()){
ly=new LyTable();
ly.setId(rs.getInt(1));
ly.setUserId(rs.getInt(2));
ly.setDate(rs.getDate(3));
ly.setTitle(rs.getString(4));
ly.setContent(rs.getString(5));
al.add(ly);
}
rs.close();
DBConn.closeStmt();
DBConn.closeConn();
session.put("al", al);
return SUCCESS;
}
else{
return ERROR;
}
}
public UserTable getUser() {
return user;
}
public void setUser(UserTable user) {
this.user = user;
}
}
struts.xml
<struts>
<package name="strutsPackage" extends="struts-default">
<action name="LoginAction" class="org.action.LoginAction">
<result name="success">main.jsp</result>
</action>
</package>
</struts>
6.编写main.jsp
<html>
<head> <title>留言板信息</title>
</head> <body>
<s:form action="add.jsp" method="post" theme="simple">
<table border="1">
<caption>留言信息</caption>
<tr>
<th>留言人姓名</th>
<th>留言时间</th>
<th>留言标题</th>
<th>留言内容</th>
</tr>
<% SqlserverDBConn DBConn=new SqlserverDBConn();
Connection conn=DBConn.getConnection();
PreparedStatement pstmt=null;
List<LyTable> al=(List<LyTable>)session.getAttribute("al");
Iterator it=al.iterator();
while(it.hasNext()){
LyTable ly=(LyTable)it.next();
String username=null;
String sql="select username from TEST..userTable where id=?";
pstmt=conn.prepareStatement(sql);
pstmt.setInt(1, ly.getUserId());
ResultSet rs=pstmt.executeQuery();
//String username=rs.getString(1);
while(rs.next()){
username=rs.getString(1);
}
%>
<tr>
<td><%=username%></td>
<td><%=ly.getDate() %></td>
<td><%=ly.getTitle() %></td>
<td><%=ly.getContent() %></td>
</tr>
<%
}
%> </table> <s:submit value="添加留言" /> </s:form>
</body>
</html>
7.编写register.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>注册</title>
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
--> </head> <body>
<s:form action="RegisterAction" method="post" theme="simple">
<table>
<caption>用户注册</caption>
<tr>
<td>用户名</td>
<td>
<s:textfield name="user.username" />
</td>
</tr>
<tr>
<td>密码</td>
<td><s:password name="user.password" /></td>
</tr>
</table>
<s:submit value="确认" />
<s:reset value="重置" />
</s:form>
</body>
</html>
8.RegisterAction
public class RegisterAction extends ActionSupport{
private UserTable user=null;
public String execute(){
ActionContext context=ActionContext.getContext();
Map session=context.getSession();
SqlserverDBConn DBConn=new SqlserverDBConn();
Connection conn=DBConn.getConnection();
String sql="insert into TEST..userTable (username,password) values(?,?)";
PreparedStatement pstmt=null;
try {
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, user.getUsername());
pstmt.setString(2, user.getPassword());
if(user!=null){
pstmt.executeUpdate();
}
pstmt.close();
DBConn.closeConn();
return SUCCESS;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return ERROR;
}
}
public UserTable getUser() {
return user;
}
public void setUser(UserTable user) {
this.user = user;
}
}
***一定要加user的get/set方法否则会报错
9.add.jsp
<html>
<head> <title>添加留言</title> <!--
<link rel="stylesheet" type="text/css" href="styles.css">
--> </head> <body>
<s:form action="AddAction" method="post" theme="simple">
<table border="1">
<caption>添加留言</caption>
<tr>
<td>留言标题</td>
<td>
<s:textfield name="ly.title" />
</td>
</tr>
<tr>
<td>留言内容</td>
<td>
<s:textarea name="ly.content" rows="10" cols="20"></s:textarea>
</td>
</tr>
</table>
<s:submit value="添加" />
<s:reset value="重置" />
</s:form>
</body>
</html>
10.AddAction
public class AddAction extends ActionSupport{
private LyTable ly;
public String execute(){
ActionContext context=ActionContext.getContext();
Map session=context.getSession();
String title=ly.getTitle();
String content=ly.getContent();
UserTable user=null;
user=(UserTable)session.get("user");
LyTable ly=new LyTable();
ly.setUserId(user.getId());
ly.setDate(new Date(System.currentTimeMillis()));
//ly.setTitle(ly.getTitle())似乎有错
ly.setTitle(title);
ly.setContent(content);
List<LyTable> al=(List<LyTable>)session.get("al");
al.add(ly);
SqlserverDBConn DBConn=new SqlserverDBConn();
String sql="insert into TEST..lyTable (userId,date,title,content) values(?,?,?,?)";
PreparedStatement pstmt=null;
Connection conn=DBConn.getConnection();
try {
pstmt=conn.prepareStatement(sql);
pstmt.setInt(1, ly.getUserId());
pstmt.setDate(2, ly.getDate());
pstmt.setString(3, ly.getTitle());
pstmt.setString(4, ly.getContent());
pstmt.executeUpdate();
pstmt.close();
DBConn.closeConn();
return SUCCESS;
} catch (SQLException e) {
e.printStackTrace();
return ERROR;
}
}
public LyTable getLy() {
return ly;
}
public void setLy(LyTable ly) {
this.ly = ly;
}
}
***
//ly.setTitle(ly.getTitle())似乎有错
Struts2 --简单留言系统的更多相关文章
- 使用Struts2和jQuery EasyUI实现简单CRUD系统(转载汇总)
使用Struts2和jQuery EasyUI实现简单CRUD系统(一)——从零开始,ajax与Servlet的交互 使用Struts2和jQuery EasyUI实现简单CRUD系统(二)——aja ...
- php建立简单的用户留言系统
php建立简单的用户留言系统 样例 addMsg.php--添加留言页面 doAction.php--响应添加留言页面 . viewMsg.php--显示留言页面 目录结构 addMsg.php--添 ...
- cookie的简单留言框
我们在网页浏览时退出后,再次进入时会有上次的记录,这就用的上cookie属性了,cookie就是服务器暂存放在你计算机上的一笔资料,好让服务器用来辨认你的计算机.当你在浏览网站的时候,Web服务器会先 ...
- .Net简单图片系统-简介
系统简介 最近做了一个简单图片系统,这个系统就是 将上传的的图片保存到系统本地文件系统或者基于fastdfs的分布式文件系统中,在查看图片时会直接请求此系统或者fastdfs的tracker服务器(需 ...
- 用Qt写软件系列三:一个简单的系统工具(上)
导言 继上篇<用Qt写软件系列二:QIECookieViewer>之后,有一段时间没有更新博客了.这次要写的是一个简单的系统工具,需求来自一个内部项目.功能其实很简单,就是查看当前当前系统 ...
- 一步步学习PHP笔记(李炎恢瓢城web俱乐部-多用户留言系统)01
本课:div+css实现首页效果: 开发工具:xampp + phpstorm 笔记目的:仅做记录使用,方便日后查看 代码目录结构: index.php: <?php define(" ...
- Ubuntu学习笔记-win7&Ubuntu双系统简单搭建系统指南
win7&Ubuntu双系统简单搭建系统指南 本文是自己老本子折腾Ubuntu的一些记录,主要是搭建了一个能够足够娱乐(不玩游戏)专注练习自己编程能力的内容.只是简单的写了关于系统的安装和一些 ...
- python实现简单购物车系统(练习)
#!Anaconda/anaconda/python #coding: utf-8 #列表练习,实现简单购物车系统 product_lists = [('iphone',5000), ('comput ...
- 学习笔记:Vue+Node+Mongodb 构建简单商城系统(二)
前面几个月工作有点忙,导致构建简单商城系统的计划搁置近三个月.现在终于有时间重新回过头来继续本计划.本篇主要记录自己在阿里云服务器上搭建node运行环境的整个过程,以及对其中遇到的一些问题的思考. 一 ...
随机推荐
- java_main
Java中用户向系统传递参数的三种基本方式 main方法 在Java中,main()方法是Java应用程序的入口方法,也就是说,程序在运行的时候,第一个执行的方法就是main()方法,这个方法和其他的 ...
- Vision GUI programming products
Matrox Design Assistant Tutorial https://www.youtube.com/watch?v=QnE5heA_yWQ merlic https://www.yout ...
- React V16.x 生命周期调整
旧声明周期: table th:nth-of-type(5) { width: 400px; } 生命周期 属于阶段 调用次数 是否可以setState 作用 getDefaultProps 创建阶段 ...
- hbase 相关
----------------------------------------hbase的 安装---------------------------------------- 本地安装: 1 解压 ...
- 关于 unsigned int 比较大小
unsigned int 的所有数都是 >=0 的.比如 unsigned int 的 -2 也是 > 0 的,所以不能用自己常用的 upt( ) { if( x<0 ) x+=mo ...
- RedHat7.3安装MySQL5.7
1.下载Mysql安装包 https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.20-1.el6.x86_64.rpm-bundle.tar 附百度 ...
- 导入导出Excel文件
搭建环境 先新建web project ,然后Add Struts Capabilties: 下载导入导出Excel所需的jar包: poi-3.8-20120326.jar包 : http:// ...
- Spring Cloud(Dalston.SR5)--Eureka 注册中心搭建
基于 Netflix Eureka 做了二次封装,主要负责完成微服务架构中的服务治理功能,服务治理可以说是微服务架构中最为核心和基础的模块,他主要用来实现各个微服务实例的自动化注册与发现 服务注册:在 ...
- sourceInsight与IAR的同步
编写与编译二者同步:引用http://bbs.ednchina.com/BLOG_ARTICLE_3013475.HTM 1 在IAR中新建一个工程TEST.菜单栏 File->New-> ...
- c#程序退出
Environment.Exit(0); Process.GetCurrentProcess().Kill();