解决方案 »
- 求高手指点这是啥意思
- 定义远程接口,能不能得到mysql数据源的JNDI?
- hibernate lazy请教!!!!
- oracle 语法问题,insert [100]
- 请问 hibernate 高手 关于 如何从数据库中重新取数据
- webservice 使用JaxWsDynamicClientFactory报空指针异常
- 请教一个关于BMP处理findByAll()方法的问题
- 求助:部署描述出错
- 那位大哥可以给我一个Java Client调用.NET(或者别的语言)的WebService的例子!!!!
- 求助,请问如何改写才能不重复爬取具有相同url和sitename的网址
- java jna 调用linux中so库有兴趣的进来瞅瞅
- 轻量级Java EE企业应用实战:Struts 2+Spring 3+Hibernate整合开发.第3版
你创建一个servlet的时候,添加一个init()方法,init方法中执行查询数据库的方法,把数据导入内存。
默认情况下servlet被加载是在第一次请求访问到来得时候,不过可以使用xml文件中配置
<load-on-startup>-1</load-on-startup>
是其在启动tomcat服务的时候就加载servlet就可以了。
while (rs.next()){ls.setLsurl(rs.getString("aa"));} (ls是ArrayList) 这样把数据直接放在链表里? 还有另外一个程序怎么获取这些数据呢?急啊急~~~
List<Item> list=new ArrayList<Item>();
try {
fr=new FileReader(file);
br=new BufferedReader(fr);
String str="";
while((str=br.readLine())!=null){
if(n==0){
n++;
continue;
}
n++;
String[] s=str.split(",");
Item item=new Item();
item.setBrandname(s[0]);
item.setClasses(s[1]);
item.setClassesid(s[2]);
item.setMjid(s[3]);
item.setColorsize(s[4]);
item.setSku(s[5]);
item.setMarket_price(s[6]);
item.setIn_price(s[7]);
item.setOut_price(s[8]);
item.setIfsuit(s[9]);
item.setMarket_code(s[10]);
item.setName(s[11]);
item.setWeight(s[12]);
item.setImgurl("null");
item.setDescription(s[15]);
list.add(item);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
br.close();
fr.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
当然我这个是从文件中读的,但是性质和从数据库中的差不多。
放到list里面,内存中就已经有了,如果别的程序需要使用这个list,就需要把list传进去就可以了。
memcache楼主值得一试
你创建servlet的时候申明一个变量list并实例化。
然后init里面对这个list进行赋值。
用的时候直接使用这个list就可以了。。
然后这个servlet结束的时候在destory清楚内存就可以了。
成员list
ArrayList<LL> ll;
public void init() throws ServletException
{
try
{
ll= ListTest.authUrl(userId); //方法类,存储好了ArrayList的数据
} catch (SQLException e)
{
e.printStackTrace();
} catch (ClassNotFoundException e)
{
e.printStackTrace();
}
}
那么,别的程序怎么获得链表里的数据呢?怎么调用啊??
楼主可以定义一
个pojo将查询出来的数据放到pojo里不就可以了吗?注意pojo单例模式或者利用ehcache放到缓存里面也行啊!!!!
如果别的程序调用的话通过request放入session中别的程序就可以用了。
List<Object> list=null;
========================================public void init() throws ServletException {
// Put your code here
//init()中加载数据库中的查询到的数据
Session session=(new Configuration()).buildSessionFactory().openSession();
String hql="";/* 数据查询省略*/
Query query=session.createQuery(hql);
//这个list变量在sevelet开始就定义了
list= query.list();
for(Object l:list){
}
=============================
在doget或是dopost方法里面
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
HttpSession session2=request.getSession();
session2.setAttribute("infomation", list);
}
=================
之后不管是在jsp页面上取值还是在servlet中,都可以通过HttpSession 定义的对象调用getParameter("information")方法取得list,
而这个id是存在session里的到的可以么?init()里可以接受HttpServletRequest之类的么?