2012年SSH考试题目以及答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
四、简答题:
2.有如下一段程序代码,请在代码下方空白处写出编号的每条语句的功能。
<s:property value=”pageBean.currentPage” />
<s:property value=”pageBean.totalPage” />
共<s:property value=”pageBean.totalPage” />页
当前第<s:property value=”pageBean.currentPage” />页</br>
共<s:property value=”pageBean.allRow” />条记录
(1)<a href=”stu/listMyAricle.action?page=1”></a>
(2)<a href=”stu/listMyAricle.action?page=
<s:property value=”%{pageBean.currentPage-1}%”/>”></a>
(3)<a href=”stu/listMyAricl e.action?page=
<s:property value=”%{pageBean.currentPage+1}%”/>”></a>
(4)<a href=”stu/listMyAricle.action?page=
<s:property value=”%{pageBean.totalPage}%”/>”></a>
答:1)点击这个超级链接会显示第一页的内容
2) 点击这个超级链接会显示当前页的上一页的内容
3)点击这个超级链接会显示当前页的下一页的内容
4)点击这个超级链接会显示最后一页的内容
3.有如下程序代码,请写出运行Test类后输出的结果
//beans.xml文件部分配置信息
<?xml version=”1.0” encoding=”UTF-8”?>
<beans>
<aop:aspect-autoproxy />
<bean id=”user” class=”er” >
<property name=”userid” value=”2012”></property>
<property name=”password” value=”信息工程学院”></property>
<property name=”username” value=”黄淮学院”></pro perty>
</bean>
</beans>
//类User
package ;
public class User {
private int userid;
private String username;
private String password;
//setter和getter方法省略
}
//测试类Test
package ;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; public class Text {
public static void main(String[] args) {
ApplicationContext ctx =
new ClassPathXmlApplicationContext(“beans.xml”);
User user = (User) ctx.getBean(“user”);
System.out.println(user.getUserid());
System.out.println(user.getUsername());
System.out.println(user.getPassword());
}
}
答:2012
黄淮学院
信息工程学院
4.在类MyInter中有方法intercept,请说明intercept方法中每个行的代码作用。
package ;
public class MyInter implements Interceptor {
public String intercept(ActionInvocation invocation) throws Exception { Object user = ActionContext.getContext().getSession().get(“user”);
if(user!=null && user.equals(“admin”)) {
return invocation.invoke();
}
ActionContext.getContext().put(“tip”,”你还没有登陆,请重新登陆系统”);
return “l ogin”
}
}
答:1)从Action上下文中获取session对象,然后通过所得到session对象获得user对象。
2)判断user是否为空,且是否等于admin这个字符串,如果两者条件都成立则通过返回invoke()方法,来调用代理类
3) 在Action上下添加一个属性名为tip,且该tip属性的值为” 你还没有登陆,请重新登陆系统”
4)返回login字符串,即验证失败重新跳回到登陆界面
五、综合题(每题15分,共30分):
1. 使用hibernate框架操作数据哭非常方便,现有一个实体类User和对应的配置都已经完成,请你编写一个测试类Test,要求:(1)实现将一个用户名为"xxgcxy" ,密码为"123456"的对象持久化到数据库重;(1)从数据库中查找用户名为"shangsan"的用户,并将其信息打印出来。
//hibernate.cfg.xml文件配置片段
<?xml version=”1.0” encoding=”UTF-8” ?>
<hibernate-configuration>
<session-factory>
<property name=”myeclipse.connection.profile”>MyConn</property>
<mapping resource=”cn/edu/huanghuai/xxgcxy/user.hbm.xml”/> </session-factory>
</hibernate-configuration>
//实体类User
package .huanghuai.xxgcxy;
public class User impl ements java.io.Serialisabl e {
private String username;
private String password;
//setter方法和getter方法略去
}
//测试类Test
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import er;
import org.util.HibernateSessionFactory;
public class Test {
public static void main(String[] args) {
Session session = HibernateSessionFactory.getSession();
//添加
User u = new User();
u.setUsername(“xxgcxy”);
u.setP assword(“123456”);
Transaction tr = session.beginTransaction();
mit();
session.save(u);
mit();
//查询
Query query =
session.createQuery(“from User u where ername=?”);
query.setString(0,”xxgcxy”);
User user = (User) query.uniqueResult();
System.out.println(user.getUsername());
System.out.println(user.getPassword());
HibernateSessionFactory.closeSession();
}
}
2. 现有struts框架开发的一个应用程序,主要实现将一个用户的信息添加到数据库重,部分功能已经完成(Success.jsp和Fail.jsp页面省略),请编写程序将空白处的程序功能补充完整。
//register.jsp文件中的表单信息
<input type=”submit” value=”提交” />
</form>
//struts.xml文件主要配置信息
<struts>
<package name=”user” extends=”struts-d efault”>
<action name=”user” class=”erAction”>
<result name=”success”>/Success.jsp</result>
<result name=”fail”>/Fail.jsp</result>
</action>
</package>
</struts>
//类User
package com.model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class User {
@Id
@GeneratedValue
private int id;
private String username;
priate String password;
//setter和getter方法略去
}
//UserAction类
package com.action;
import com.mod er;
import erManager;
public class UserActiton extends ActionSupport {
private String username;
private String password;
private String password2;
UserManager um = new UserManager();
//setter和getter方法略去
@Overrid e
public String execute() throws Exception {
User u = new User();
u.setUsername(username);
u.setPassword(password);
if(um.exists(u)) {
return “fail”;
}
um.ad d(u);
return “success”;
}
}
//类UserManager
package com.service;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import com.mod er;
public class UserManager {
//实现判断用户是否存在功能,部分代码已经完成
public Bool ean exists(User u) throws Exception {
Class.forName(“com.mysql.jdbc.Driver”);
Connection conn =
DriverManger.getConnection(“jdbc:mysql://l ocalhost/users”,”root”,”123456”)
String sql = “select count(1) from user where username=?”;
PreparedStatement stmt = conn.prepredStatement(sql);
stmt.setString(1, u.getUsername());
ResultSet rs = stmt.executeQuery();
rs.next();
int count = rs.getInt(1);
rs.close();
stmt.close();
conn.close();
if(count > 0) {return true;}
return false;
}
//实现将用户信息添加到数据库重的功能,部分代码已经完成public vod add(User u) throws Exception {
Class.forName(“com.mysql.jdbc.Driver”);
Connection conn =
DriverManger.getConnection(“jdbc:mysql://l ocalhost/users”,”root”,”123456”);
String sql = “insert into user(username,password) values(?,?)”;
PreparedStatement stmt = conn.prepredStatement(sql);
stmt.setString(1, u.getUsername());
stmt.setString(2,u.getPasword());
ResultSet rs = stmt.execute();
rs.close();
stmt.close();
conn.close();
}
}。