【Struts2】使用JDBC、Struts2标签、编辑WEB.XML完成较成熟的工程(1)

来源:互联网 发布:丝路英雄冒险数据 编辑:程序博客网 时间:2024/04/29 04:17

一、工程的基本功能

在login1.jsp输入完用户名与密码,点击登陆按钮便对数据库进行查表操作。


如果密码输入错误,则返回:


如果密码输入正确,则对supername这个字段进行判断,如果是1或者2便跳到registerusrwelcome页面进行进一步的判断看是高权用户还是普通用户。如果是3则跳到管理员页面。


在管理员页面中,存在着一个用户列表的超级链接,点击则对数据库进行查表,把数据库acesys中的整个usr表罗列出来。



二、算法思路

Login1.jsp把文本框的值扔到相应的usrLoginAction.action进行处理(实质上就是一个Java类),如果在struts.xml中判断其返回值,如果是success3则把页面跳转到adminwelcome.jsp,其余的值会有相应的处理。而在adminwelcome.jsp也存在着一个跳转到相应action(实质上也是一个Java类、Java处理文件)进行处理,由于没有到最终处理完毕仅有一种成功的情况(除非程序猿自己写错代码了),因此,无论如何都返回一个的值给struts.xml意思意思,然后自然而然地扔到showAllusr.jsp。至于为什么不直接拉到showAllusr.jsp进行?是因为把数据库操作代码扔到前台实在是太危险鸟!


整个工程的具体文件目录如下所示,已经用不同的颜色标注不同的程序处理线路:


当然,这上面有些页面是无关这个工程的……


三、制作步骤


1.首先在Mysql中配置好一张用户基本信息表usr,如下:

在里面输入好相应的用户信息。表示预先存在着几个用户。当然,注册页面与下面的制作过程同理,只是其中的SQL语句不同罢了。

然后按照之前的方法,用一个已经配置好struts2的WEB-INT替换原工程的WEB-INT。直接配置好struts2,省去编辑的麻烦。


2.写好Login1.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%@ taglib uri="/struts-tags" prefix="s"%><%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 'login1.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><s:property value="error" /><!--<form action="usrLoginAction.action" method="post">用户名:<input type="text" name="username" /><br />密码:<input type="password" name="password" /><br /><input type="submit" value="登陆" /></form>--><!--使用struts2的标签实现表单--><s:form action="usrLoginAction" method="post"><s:textfield name="username" label="用户名"></s:textfield><s:password name="password" label="密码"></s:password><s:submit value="登陆"></s:submit></s:form></body></html>


这次编写不使用古老的HTML代码。直接使用Struts2标签(也就是Struts2自身的标准去编写)。

首先要在jsp头加入一段使用Struts2标签的声明<%@ taglib uri="/struts-tags" prefix="s"%>

而之后的的编写如上面的代码所示。之前用HTML代码的那一段已经被注释掉,和与Struts2进行对比。

其中<s:property value="error" />的意思是输出Action里面的那个的error变量的值。

同时注意,这里是value而不是values。这是一个名词,表示值等于多少。而不是一个动词,说其值为多少。

0 0