java 建一个类,用来得到session和request

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 建一个类,用来得到session和request相关的知识,希望对你有一定的参考价值。

在一个项目中,有很多地方要用到session和request,从而在每个地方都要定义和getSession、getRequest,这样显得很麻烦,现在我想单独写一个类,里面有getSession、getRequest方法,可以写一个静态类吗?省得用的时候要构造,这样每次用的时候导一下那个类就可以了,本人写了久,getAttribute()时都得到的都是空指针。上面我所说的可以实现吗?麻烦高手帮在下写一个要求:一切从简,使用时能不构造就不构造。本人写的如下:package song.util;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import org.apache.struts2.ServletActionContext;public class SesReq public static HttpSession getSession() return ServletActionContext.getRequest().getSession(); public static HttpServletRequest getRequest() return ServletActionContext.getRequest(); 请问有什么错误?

参考技术A 因为session和request是有作用范围的,在同一次请求(request)和同一次会话(session)中,才能得到你保存的session和request对象。要实现你想要的这个效果可以这样:在你的SesQeq类写成Servlet类,然后在web.xml文件对应的Servlet中加入<load-on-startup>1</load-on-startup>就可以了
这个配置表示该Servlet在服务器启动的时候就加载。 <servlet>

<servlet-name>...</servlet-name>

<servlet-class>...</servlet-class>

<load-on-startup>1</load-on-startup>

</servlet>

java HashSet改用

技术分享

写的一个Student类如下:

技术分享

上面是直接使用的HashSet集合,系统会把new Student()  当做地址不用来出来,所以结果如下:

技术分享

 

然后我在Student类中重写了hashCode()和equals()方法,

技术分享

 

然后再在main程序中,新建HashSet集合,并对里面存放相同属性,不同地址的对象

技术分享

然后执行,得到的结果如下:

技术分享

实现了我们的需求。同时会发现,最上面建的 hs 集合,存放的元素也会不重复的,因为我们的HashSet的中的add()方法会自动的调用添加对象的这两个方法。源码里实现了。

以上是关于java 建一个类,用来得到session和request的主要内容,如果未能解决你的问题,请参考以下文章

Java 包和访问权限--3

Java类加载机制

Java类加载机制

JAVA 类与对象题目5

java 封装练习题3

JAVA-基础-异常