关闭

使用struts框架的简单jsp登录页面

标签: strutsjsp
1789人阅读 评论(0) 收藏 举报
分类:

转载请注明,来自shhider!


略坑的数据集成课的实验,让我们用struts框架写一个登录页面。

之前没接触过jsp,完全现学现做。捣鼓了好久,终于调通了,记录下来备忘,也帮助一下其他同学。

一、环境

JDK、Tomcat、MyEclipse

学计算机的jdk应该早装了,忽略……

Tomcat,jsp网站运行所需的服务器。建议童鞋们还是下载那个压缩包版本的,不用安装,因为一般我们都用的是MyEclipse开发,MyEclipse中直接运行会开启tomcat服务器,具体配置后面讲。Tomcat随意解压在哪里,当然你自己得知道位置;

MyEclipse,非常强大又肥大的IDE。其实eclipse也行,但是没有相关插件会比较麻烦。大家还是下载10版本的吧,我装的2013,有一些地方不太一样,有点麻烦……比如,2013版本建立web工程的时候,不要直接finish,点next到后面,要勾选一下create web.xml file,默认不自动创建,会比较麻烦。

破解的话网上有很多教程,就下载一个crack程序,按网上的流程来就行。

还有几个开发jsp必要的设置。关联JDK,菜单栏windows > preference > java > installed JREs,点击add,浏览到你安装的jdk目录,最后勾选上。关联Tomcat服务器windows > preference > myeclipse > servers > tomcat ,点击你下载的版本(如果你下载的Tomcat8,而这里没有8的话,也可以勾选7的),选中enable,然后浏览到你的Tomcat目录。

印象中必须的应该就是上面两个,其他设置可以自己摸索一下。对了,这里工作空间不一定设置到Tomcat的目录下,随便哪里都可以,部署的时候MyEclipse会你部署过去。


二、开始建立你的工程

新建web project,新手的话其中的选项还是看一下比较好,一定要选择你电脑上的jdk、java EE版本。

导入struts框架核心文件。百度一下,到官网下载即可,就是一压缩包。这个框架使用的方式跟php完全不同,愁死我了……想我们这个简单的登录页面,需要以下几个包(解压后在lib里面):

commons-fileupload-1.2.1.jar
commons-io-1.3.2.jar
commons-logging-1.0.4.jar
freemarker-2.3.15.jar
ognl-2.7.3.jar
struts2-core-2.1.8.1.jar
xwork-core-2.1.6.jar
javassist-3.11.0.GA.jar
实验指导里少这个包

commons-lang3-3.1.jar(这个包也少了

Ctrl+C后,到MyEclipse里项目目录里粘贴,粘贴到web-root > web-inf > lib目录下。这样struts框架就导入到你的项目了。


三、配置web.xml

将实验指导中的代码复制,并做了修改后,我的web.xml文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
	id="WebApp_ID" version="3.0">
	<display-name>Strut2Travel</display-name>
	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
		<welcome-file>index.htm</welcome-file>
		<welcome-file>index.jsp</welcome-file>
		<welcome-file>default.html</welcome-file>
		<welcome-file>default.htm</welcome-file>
		<welcome-file>default.jsp</welcome-file>
	</welcome-file-list>
	<filter>
		<filter-name>struts2</filter-name>
		<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
	<servlet>
		<description>This is the description of my J2EE component</description>
		<display-name>This is the display name of my J2EE component</display-name>
		<servlet-name>LoginAction</servlet-name>
		<servlet-class>LoginAction</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>LoginAction</servlet-name>
		<url-pattern>/servlet/LoginAction</url-pattern>
	</servlet-mapping>
</web-app>

这里要提的几个是,filter-class标签,根据百度,struts2.1之后的版本是不一样的,请看一下代码。另外就是注意里面的servlet-class等几个地方要跟你的类要一致,可以后面写完类后再来检查。


四、写action类

直接放上代码,里面的几个方法(execute()、getXXX()、setXXX())都是约定的,不清楚的就不要大改了。新建在src目录下

package login;	//要记住你设置的包名,配置文件需要
import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport {
	private String username;
	private String userpass;

	public String execute() {
		//这里帐号密码直接卸载程序里了……
		if ("daniel".equals(username) && "abcde".equals(userpass))
			return SUCCESS;
		else
			return ERROR;
	}

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getUserpass() {
		return userpass;
	}

	public void setUserpass(String userpass) {
		this.userpass = userpass;
	}
}

五、添加jsp文件

登录表单页面login.jsp、登录成功页面welcome.jsp、登录失败页面error.jsp基本都没有什么讲的。

要注意的地方就是表单的提交action目的

<!-- action是struts.xml中的 (package的name)/(action的name).action -->
	<form action="login/LoginAction.action">
		用户名:<input name="username"><br>
		密 码:<input type="password" name="userpass"><br>
		<input type="submit" value="提 交"><input type="reset" value="取 消">
	</form>

六、蛋疼,配置struts.xml文件

基本上大部分的错都因为这个配置文件。

首先注意,是struts.xml,不是实验指导上的struts2.xml,应该是实验指导上的版本不一样。

新建struts.xml在src下,就是跟action一个目录,部署的时候MyEclipse会帮我们都搞定的。

我的配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
	<package name="login" extends="struts-default">
		<action name="LoginAction" class="login.LoginAction">
			<result name="success">/welcome.jsp</result>
			<result name="error">/error.jsp</result>
		</action>
	</package>
</struts>


<?xml ... ?>必须第一行,<!DOCTYPE ...>必须第二行,下面的标签的包含层次也一定要正确。

很蛋疼的就是一样复制过来的是错的,原因是格式……把所有的空行、不必要的空格去掉,规规矩矩的按标准的格式来。

其中的具体内容。1、DOCTYPE的版本,我这里用的是2.0,我试了几个2.0版本基本上没问题,如果你2.1、2.2不行的话也改2.0吧。

2、struts包含package包含action包含result,package和action的name自己设置,login.jsp文件里就是要跟这里对应。action标签的class就是上面写的LoginAction类,按照你的LoginAction类所在包和类名。

3、result标签的name要跟LoginAction.java文件的返回值对应,之后就是对应跳转的目的。


现学现卖,如果有错误、问题的话欢迎交流微笑


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:46607次
    • 积分:853
    • 等级:
    • 排名:千里之外
    • 原创:33篇
    • 转载:45篇
    • 译文:0篇
    • 评论:0条
    文章分类