java web开发入门二(struts)基于eclispe
JavaBean
JavaBean, 咖啡豆。 JavaBean是一种开发规范,可以说是一种技术。
JavaBean就是一个普通的java类。只有符合以下规定才能称之为javabean:
1)必须提供无参数的构造方法
2)类中属性都必须私有化(private)
3)该类提供公开的getter 和 setter方法
getName() setName(String name)
注意: boolean类型的get方法名称叫 isXXX()方法 public boolean isAcitve()
JavaBean的作用: 用于封装数据,保存数据。
访问javabean只能使用getter和setter方法
JavaBean的使用场景:
1)项目中用到实体对象(entity)符合javabean规范
2)EL表达式访问对象属性。${student.name} 调用getName()方法,符合javabean规范。
3)jsp标签中的属性赋值。 setNum(Integer num)。符合javabean规范。
4)jsp页面中使用javabean。符合javabean规范
struts
struts是对servlet的封装
1.开发步骤
1.下载struts 开发库:http://struts.apache.org 下载点击下载:struts-*-all.zip版本 ,使用2.3版本
2.在项目lib下面导入struts必须的包,然后build path
commons-fileupload-1.2.2.jar 【文件上传相关包】
commons-io-2.0.1.jar
struts2-core-2.3.4.1.jar 【struts2核心功能包】
xwork-core-2.3.4.1.jar 【Xwork核心包】
ognl-3.0.5.jar 【Ognl表达式功能支持表】
commons-lang3-3.1.jar 【struts对java.lang包的扩展】
freemarker-2.3.19.jar 【struts的标签模板库jar文件】
javassist-3.11.0.GA.jar 【struts对字节码的处理相关jar】
3.配置web.xml
<!-- 引入struts核心过滤器 --> <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>
4.开发action
在src下面创建struts的action,继承ActionSupport
//开发action: 处理请求
public class HelloAction extends ActionSupport {
// 处理请求
public String execute() throws Exception {
System.out.println("访问到了action,正在处理请求");
System.out.println("调用service");
return "success";
}
}
5.在src下面添加struts.xml文件(可以在struts包中搜索)
一个struts.xml中可以有多个package,但是package的名称不能重复
<?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> <!-- name任意名称,extends固定写法 --> <package name="mystruts" extends="struts-default"> <!-- name:浏览器要访问的名称,class:编写的action全称,method:action下面的方法 --> <action name="hello" class="com.eggtwo.action.HelloAction" method="execute"> <!-- name:返回值, 跳转地址 --> <result name="success">/index.jsp</result> </action> </package> </struts>
5.1struts.xml的第二种配置方式:
在src下面添加总的struts.xml文件,然后在总文件中引用各个包中的struts.xml文件
总struts.xml文件:
<?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> <!-- 总配置文件:引用其他包中的独立的配置文件 --> <include file="com/eggtwo/action/struts.xml"></include> </struts>
包中的struts.xml文件:
<?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> <!-- name任意名称,extends:继承的类 --> <package name=com.eggtwo.action namespace="/" extends="struts-default" abstract="false"> <!-- name:浏览器要访问的名称,class:编写的action全称,method:action下面的方法 --> <action name="execute" class="com.eggtwo.action.HelloAction" method="execute"> <!-- name:返回值, 跳转地址 --> <result name="success" >/index.jsp</result> </action> <action name="login" class="com.eggtwo.action.LoginAction" method="login"> <!-- name:返回值, 跳转地址 --> <result name="success" >/login.jsp</result> </action> </package> </struts>
项目结构:
2.执行流程
服务器启动:
1. 加载项目web.xml
2. 创建Struts核心过滤器对象, 执行filter -> init()
struts-default.xml, 核心功能的初始化
struts-plugin.xml, struts相关插件
struts.xml 用户编写的配置文件
访问:
3. 用户访问Action, 服务器根据访问路径名称,找对应的aciton配置, 创建action对象
4. 执行默认拦截器栈中定义的18个拦截器
5. 执行action的业务处理方法