J2EE开发

软件:

JavaJDK、apache-tomcat-7.0.8-windows-x86、myeclipse.9.0.M2发布].myeclipse-9.0M2-offline-installer-windows、MySQL

MyEclipse与Tomcat集成:

首先,要确保javajdk已经安装好了然后,分别解压Tomcat和安装MyEclipse软件。启动MyEclipse,Windows--->Preferences-->MyEclipse--->Servers--->
Tomcat--->Tomcat 7.x双击得到下面的图形:

clip_image001

将Tomcat homedirectory设定为我们放置解压后的Tomcat文件的地方.我们还可以设置Tomcat7.x下运行的jdk,一般采用默认的不用我们来修改.

测试Tomcat是否与MyEclipse集成成功:

我们通过点击MyEclipse工具栏中的工具来选择启动Tomcat7服务器

clip_image002

然后,在浏览器中输入http://localhost:8080/,如果配置成功的话,则出现Tomcat首页

clip_image003

开发第一个Struct2程序:

下载struts2:

要想使用最新的或者是现阶段比较流行的struts版本我们需要自己上网去http://struts.apache.org/下载,解压后可以看到有以下内容

clip_image004

apps:包含基于struts2的示例应用

docs:包含struts2的相关文档

lib:包含struts2框架的核心类库,以及strut2的第三方插件类库

src:包含struts2框架的全部源代码

创建Web Project,命名项目的名称为strut

加载struts2包:

将xwork-2.0.7,tiles-jsp-2.0.4,struts2-core-2.0.14,ognl-2.6.11,

,freemarker-2.3.8,commons-logging-1.0.4复制到刚刚创建的项目下的WEB-INF-->lib文件夹下.然后选中工程右击选择BuildPath--->Configure Build Path出现下图对话框,单击Add ExternalJARS,再将上面的这5个包添加到项目中

clip_image005

4.修改Web.xml文件

打开WebRoot/WEB-INF/web.xml修改为

<?xmlversion="1.0"encoding="UTF-8"?>

<web-appversion="2.5"

xmlns="http://java.sun.com/xml/ns/javaee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

<filter>

<filter-name>strut</filter-name>

<filter-class>

org.apache.struts2.dispatcher.FilterDispatcher

</filter-class>

</filter>

<filter-mapping>

<filter-name>strut</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

</web-app>


5.创建login.jsp

右击WebRoot--->new--->jsp

<%@ pagelanguage="java"import="java.util.*"pageEncoding="ISO-8859-1"%>

<%

String path = request.getContextPath();

String basePath =request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

<!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01Transitional//EN">

<html>

<head>

<basehref="<%=basePath%>">

<title>My JSP 'login.jsp' startingpage</title>

<metahttp-equiv="pragma"content="no-cache">

<metahttp-equiv="cache-control"content="no-cache">

<metahttp-equiv="expires"content="0">

<metahttp-equiv="keywords"content="keyword1,keyword2,keyword3">

<metahttp-equiv="description"content="This is mypage">

<!--

<linkrel="stylesheet"type="text/css"href="styles.css">

-->

</head>

<body>

<formaction="login.action"method="post">

username: <inputname="username"type="text"><br>

password: <inputname="password"type="password"><br>

<inputtype="submit"value="submit">

</form>

</body>

</html>


6.实现控制器

在src目录下创建一个新类LoginAction.java

import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport{

private String username;

private String password;

public String execute()

{

if(getUsername().equals("chne")&&getPassword().equals("lovejwj2004"))

return "success";

else

return "error";

}

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;

}

}


Tips:username和passwrod的命名必须与login.jsp中使用的文本输入框的命名严格保持一致.

7.配置struts.xml

在src下生成文件struts.xml

<?xmlversion="1.0"encoding="UTF-8"?>

<!DOCTYPE struts PUBLIC

"-//Apache Software Foundation//DTD StrutsConfiguration 2.0//EN"

"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

<packagename="strut"extends="struts-default">

<actionname="login"class="LoginAction">

<!-- result没有名字是默认的success -->

<resultname="success">/welcome.jsp</result>

<resultname="error">/error.jsp</result>

</action>

</package>

</struts>


clip_image006

8.在WebRoot下创建welcome.jsp和error.jsp页面

welcome.jsp:

<%@ pagelanguage="java"import="java.util.*"pageEncoding="ISO-8859-1"%>

<%@ taglibprefix="s"uri="/struts-tags"%>

<%

String path = request.getContextPath();

String basePath =request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

<!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01Transitional//EN">

<html>

<head>

<basehref="<%=basePath%>">

<title>My JSP 'welcome.jsp'starting page</title>

<metahttp-equiv="pragma"content="no-cache">

<metahttp-equiv="cache-control"content="no-cache">

<metahttp-equiv="expires"content="0">

<metahttp-equiv="keywords"content="keyword1,keyword2,keyword3">

<metahttp-equiv="description"content="This is mypage">

<!--

<linkrel="stylesheet"type="text/css"href="styles.css">

-->

</head>

<body>

<s:propertyvalue="username"/>welcome to log in

</body>

</html>

error.jsp:

<%@ pagelanguage="java"import="java.util.*"pageEncoding="ISO-8859-1"%>

<%

String path = request.getContextPath();

String basePath =request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

<!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01Transitional//EN">

<html>

<head>

<basehref="<%=basePath%>">

<title>My JSP 'error.jsp' startingpage</title>

<metahttp-equiv="pragma"content="no-cache">

<metahttp-equiv="cache-control"content="no-cache">

<metahttp-equiv="expires"content="0">

<metahttp-equiv="keywords"content="keyword1,keyword2,keyword3">

<metahttp-equiv="description"content="This is mypage">

<!--

<linkrel="stylesheet"type="text/css"href="styles.css">

-->

</head>

<body>

Fail to log in for invalidate username orpassword<br>

</body>

</html>


9.部署

将应用部署到服务器上,启动tomcat,运行,在浏览器中输入http://localhost:8080/strut/login.jsp

clip_image007

Q:使用tomcat的时候可能会报出异常Error starting static Resources.

导致上面的错误信息:

(1)我原来工程有个叫“photo”的web工程,我现在把移除掉了。

(2)但是,我在Tomcat的server.xml文件中配置了虚拟目录,也即是如下信息

现在原因已经找到,Tomcat中“photo”已经不存在,但是server.xml文件中还保留虚拟目录信息,所以直接导致Tomcat报如下错误

Java代码

严重: Error starting static Resources

java.lang.IllegalArgumentException: Document baseE:\apache-tomcat-5.5.26\webapps\photo does not exist or is not areadable directory atorg.apache.naming.resources.FileDirContext.setDocBase(FileDirContext.java:141)

ok,如果你把server.xml那段信息删除,重新启动Tomcat就没有问题了。


转载于:https://www.cnblogs.com/javaspring/archive/2012/03/13/2656152.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值