期末复习
基础
Struts框架的四大组件action、struts.xml、web.xml、jsp
struts的标签库主要有UI标签 非UI标签 ajax标签
jdbc的全称是Java database connectivity
jdbc的中文名称是java的数据库连接
ORM是为了解决什么问题提出的机制为了解决面向对象与关系数据库存在的互不匹配现象
struts.xml文件中,默认调用的action方法名称是execute
客户端提交数据当含有中文时,JSP不能正常显示,调用request 对象的什么方法可以调整编码方式setCharacterEncoding()
-
jsp技术中嵌入java代码,使用的符号
<%%>
-
掌握jsp技术中引用其他标签库指令标签的书写
-
掌握jsp技术中request对象setAttribute( )、setCharacterEncoding()、getParameterNames()方法的含义,写出这三个方法的作用
setAttribute( ) 设置request的对象属性 request.setAttribute("username" )
setCharacterEncoding()设置编码格式 request. setCharacterEncoding(“UTF-8”)
getParameterNames() 接收参数 request.getParameter(name)
-
struts框架的基本组成:四个部分
struts.xml、web.xml、action、jsp
-
struts框架标签的分类
用户标签、非用户标签、Ajax标签
-
JDBC的含义与作用
Java数据库连接(Java Database Connectivity,简称JDBC)
与数据库交互
-
Struts框架的基本原理:
Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求。
-
在struts框架中,系统默认调用的action的方法
-
掌握OGNL表达式语言和值栈的关系,书写这两种的区别与联系
、%、$
-
动态网站开发,服务器的脚本语言
jsp
-
掌握Jsp技术中,页面跳转指令书写
-
掌握jsp技术九大内置对象的作用域大小
https://www.cnblogs.com/java-123/p/9447909.html
request、response、out、session、application、pageContext、page、config、exception
request 请求对象 类型 javax.servlet.ServletRequest 作用域 Request
response 响应对象 类型 javax.servlet.SrvletResponse 作用域 Page
pageContext 页面上下文对象 类型 javax.servlet.jsp.PageContext 作用域 Page
session 会话对象 类型 javax.servlet.http.HttpSession 作用域 Session
application 应用程序对象 类型 javax.servlet.ServletContext 作用域 Application
out 输出对象 类型 javax.servlet.jsp.JspWriter 作用域 Page
config 配置对象 类型 javax.servlet.ServletConfig 作用域 Page
page 页面对象 类型 javax.lang.Object 作用域 Page
exception 例外对象 类型 javax.lang.Throwable 作用域 page
page 当前页面有效时间最短(页面执行期)
request HTTP请求开始到结束这段时间
session HTTP会话开始到结束这段时间
application 服务器启动到停止这段时间
-
掌握struts框架开发时,web.xml src.xml文件具体位置
-
掌握拦截器的功能
-
掌握拦截器在struts.xml文件中,引用拦截器标签的写法
<interceptors> <interceptor name="myInterceptor" class="edu.hust.interceptor.MyInterceptor"></interceptor> <interceptor-stack name="myInterceptorStack"> <interceptor-ref name="myInterceptor"></interceptor-ref> <interceptor-ref name="defaultStack"></interceptor-ref> </interceptor-stack> </interceptors>
-
掌握使用数据标签bean,并完成书上39页编码
<s:bean name="person" var="p"> <s:param name="name" value="'刘子成'" /> <s:param name="age" value="21"/> <s:param name="sex" value="'男'" /> <s:param name="home" value="'江苏省苏州市'" /> </s:bean> 姓名:<span style="color: brown;"><s:property value="#p.name" /> </span><br> 年龄:<span style="color: brown;"><s:property value="#p.age" /> </span><br> 性别:<span style="color: brown;"><s:property value="#p.sex" /> </span><br> 籍贯:<span style="color: brown;"><s:property value="#p.home" /> </span><br>
public class person { private String name; private int age; private String sex; private String home; 省略get、set方法 }
编程题
- 使用jsp技术完成5s刷新页面日期显示,重点掌握response中刷新页面的方法书写
<% //5s刷新页面
response.setHeader("refresh","5");
Date time = new Date();
out.print(time.toLocaleString());
%>
- 编写除0异常处理,设定出现异常的页面为err.jsp,出现异常跳转后的页面为error.jsp,要求请求提交的方法为get。注意:完成struts.xml文件的配置、Action类的书写、前端界面的书写
//前端界面(calculator.jsp)
<s:form action="exception" theme="simple" method="get">
<s:textfield name="a" label="" cssStyle="width: 60"/>
/<s:textfield name="b" label="" cssStyle="width: 60"/>
=<s:textfield name="c" label="" cssStyle="width: 60"/>
<s:submit value="计算"/>
</s:form>
//action界面(exceptionAction)
public class ExceptionAction extends ActionSupport {
private int a;
private int b;
private int c;
//省略get、set方法
public String calculate() throws Exception{
c = a/b;
return SUCCESS;
}
}
//跳转错误界面(error.jsp)
<h4>除0异常</h4>
//配置sturts.xml
<package name="default" extends="struts-default" namespace="/">
<global-results>
<result name="error">/error.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping
exception="java.lang.ArithmeticException" result="error">
//算数异常抛出
</exception-mapping>
</global-exception-mappings>
<action name="exception" class="ExceptionAction" method="calculate">
<result name="success" >/calculator.jsp</result>
<result name="error" >/error.jsp</result>
</action>
</package>
- 使用form标签、textfield标签、radio标签、doubleselect标签,完成一个调查问卷的编码。要求该调查问卷中有:姓名、性别、地址
//survey.jsp
<s:textfield name="文本框的命名" label="请输入你的姓名"/><br>
<s:radio name="rad" label="你的性别是" list="{'男生','女生'}" /><br>
<s:form name="aa">
你所居住的城市<s:set var="pt" value="#{'江苏省':{'无锡市','苏州市','南通市'},'安徽省':{'安庆市','合肥市','芜湖市'}}" />
<s:doubleselect name="ds1" list="#pt.keySet()" doubleName="ds2" doubleList="#pt[top]"/>
</s:form>
-
使用hibernate框架学生和教师的多对多开发,要求:
-
测试类中需要设置双向关联
-
向学生表中插入一条记录 (1,s1)
-
向教师表插入两条记录 (1,t1)
-
将s1-t1进行关联
学生表:sid sname 教师表:tid tname
-
//学生类
public class student {
private int sid;
private String sname;
Set<teacher> teachers = new HashSet<teacher>();
//省略get、set方法
}
//教师类
public class teacher {
private int tid;
private String tname;
Set<student> students = new HashSet<student>();
//省略get、set方法
}
//学生类映射文件
<class name="studentTeacher.student" table="student">
<id name="sid" column="sid">
<generator class="native"/>
</id>
<property name="sname" column="sname"/>
<set name="teachers" inverse="true">
<key column="sid"></key>
<many-to-many class="studentTeacher.teacher" column="tid"></many-to-many>
</set>
</class>
//教师类映射文件
<class name="studentTeacher.teacher" table="teacher">
<id name="tid" column="tid">
<generator class="native"/>
</id>
<property name="tname" column="tname"/>
<set name="students" inverse="true">
<key column="tid"></key>
<many-to-many class="studentTeacher.student" column="sid"></many-to-many>
</set>
</class>
//测试类
public class test {
public void test(){
SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction transaction = session.beginTransaction();
student student = new student();
student.setSid(1);
student.setSname("s1");
teacher teacher = new teacher();
teacher.setTid(1);
teacher.setTname("t1");
transaction.commit();
session.save(student);
session.save(teacher);
session.close();
}
public static void main(String[] args) {
new test().test();
}
}