struts2_day02问题记录

struts2_day02问题记录:

1.eclipse j2EE中dynamic Web module version:-2.5,3.0?

1>dynamic web module version是与你的servlet版本有关的,若使用tomcat7.0,一般是3.0;若tomcat6,则一般是2.4或2.5.
2>当选择不同时,生成的web.xml的dtd文件也不同。
参考资料

2.Servlet三大域,Jsp四大域?

问题产生
Servlet三大作用域:
Servlet三大域对象,Jsp四大域对象
1>请求作用域 request:表示一个请求,只要发出一个请求就会创建一个request,仅在本次请求中有效。
作用:①获取表单提交参数: request.getParameter()

1.从login.jsp中获取用户名和密码
String username = request.getParameter(“username”);
String password = request.getParameter(“password”);
String imageText = request.getParameter(“imageText”);

②传值到表单:request.setAttribute()

if(user == null) {
//用户名和密码不匹配
request.setAttribute(“msg”, “用户名和密码不匹配!”);
return “/jsp/login.jsp”;
}

③ request.getAttribute()
④request.removeAttribute()

2>会话作用域 session:用户打开浏览器会话开始,直到关闭浏览器会话才会结束。一次会话期间只会创建一个session对象,其中的数据可供当前会话中所有servlet共享。
作用:①读取生成的验证码信息:

// 图片的验证码
String imageMsg = (String) request.getSession().getAttribute(“imageMsg”);

②用户保持登录状态:

//登录成功 保存用户登录状态
request.getSession().setAttribute(“user”, user);

③购物车物品保存:

//将cart放入session中
request.getSession().setAttribute(“cart”, cart);

3>上下文作用域 Application(ServletContext):应用程序作用域,是从程序开始运行到运行停止(没怎么用过啊)。

response用过的就有response.sendRedirect(),response.addCookie(),这些都是页面定向,cookie问题,到最后如果想获取参数还是用其他的,所以response不算进三大域吧,应该属于内置对象。

Jsp四大域
之所以为四大域是因为这是四个Map集合,以键值对的形式存放了相关的数据
Servlet三大域对象,Jsp四大域对象
1>request域 :通过request获取部署的应用程序名,获取servlet传递过来的参数等

${pageContext.request.contextPath }/user

相当于:pageContext.getRequest().getContextPath()

=${ci.product.pid }

这是从CartServlet中传递过来的购物项,从request请求拿出购物项

2>session域:获取session

${empty user }

${not empty user }

上面说过,为了保持用户登录状态设定了session值,现在传递给了jsp页面,jsp取出用来判断User是否为空,为空则显示登录按钮,不为空就显示“xxx用户,你好!”。

${empty cart || empty cart.cartItems }

还有购物车cart。

3>application域 :应用程序作用域

4>pageContext域

3.线程安全就可以写业务?

线程安全就可以保证多线程的运行,就可以编写业务程序在里面,在有业务逻辑的同时还能保证多线程。

4.action是怎么处理乱码的?默认用get方法提交表单输入中文也没乱码啊?

5.成员变量与属性?

属性的官方定义:

SUN官方定义为属性是指get或者set方法名 去掉get或者set后,把剩余的部分首字母改为小写后,即为这个类的属性。

private String name;

成员变量name

public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}

属性name

6.java中private User user;和User user = new User();的具体区别?

private User user:声明一个变量,类型为User,不创建新实例;因为是一个类的私有的User字段,private修饰符表示只能在类内访问user字段,一般指供类中的方法使用。如果要在其他类中使用,必须提供相应的接口才能访问。

User user=new User(); 声明一个变量,类型为User,同时创建一个新实例;它可能存在方法中,表示实例化一个User对象。也可能是在定义类字段的时候,如果实在定义类的字段那么他的修饰符默认的是包级别的。就是说可以在同一个包中直接访问user对象,而不必通过接口。
参考资料1
参考资料2

7.URL出现:Demo11Action?list=XXX&list%5B5%5D=xxx?对应后台list[xxx,null,,null,,null,,null,xxx]

%5B5%5D:表示list的第5位置
参考资料

8.eclipse @override错误?

由于jdk版本不对应引起的
参考资料

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值