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

一、工程的基本功能

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


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

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

如果密码输入正确,则对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进行?是因为把数据库操作代码扔到前台实在是太危险鸟!


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

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

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


三、制作步骤


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

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

在里面输入好相应的用户信息。表示预先存在着几个用户。当然,注册页面与下面的制作过程同理,只是其中的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。这是一个名词,表示值等于多少。而不是一个动词,说其值为多少。

你可能感兴趣的:(【Struts2】使用JDBC、Struts2标签、编辑WEB.XML完成较成熟的工程(1))