当前位置: 代码迷 >> Java Web开发 >> 没多少分了,小疑点请问,java web的jsp+servlet+sql2000
  详细解决方案

没多少分了,小疑点请问,java web的jsp+servlet+sql2000

热度:663   发布时间:2016-04-17 11:02:35.0
没多少分了,小问题请教,java web的jsp+servlet+sql2000。
servlet 类
ackage com.wsy.Filter;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;

public class ModifyCode implements Filter
{
protected FilterConfig filterConfig;
private String targetEncoding="UTF-8";

public void init(FilterConfig config)throws ServletException
{
this.filterConfig=config;
this.targetEncoding=config.getInitParameter("code");
}

public void doFilter(ServletRequest request,ServletResponse response,FilterChain chain)throws ServletException
{
HttpServletRequest srequest=(HttpServletRequest)request;
try{
srequest.setCharacterEncoding(this.targetEncoding);
chain.doFilter(request, response);
}
catch(Exception e)
{
e.printStackTrace();
}

}
public void destroy()
{
this.filterConfig=null;
}
}

java的数据库查询类:
public void bumenchaxun()
{

Connsqlserver conn = new Connsqlserver();
String sql = "select * from bumen where 1=1";
try {
ResultSetMetaData rsmd=(ResultSetMetaData) conn.executeQuery(sql).getMetaData();
List<Map<String,Object>> list=new ArrayList<Map<String,Object>>();
while(rs.next()){ //循环表
//每行记录放到一个map里!
Map<String,Object> map=new HashMap<String,Object>(); //每行记录放到一个
for(int i=0;i<rsmd.getColumnCount();i++)
{
map.put(rsmd.getColumnName(i), rs.getObject(i));
}
list.add(map);
}

catch (SQLException e) 
{
e.printStackTrace();
}
}

jsp页面的关键代码:
 <td> <select name="select" id="select" onblur="sele();" >


下面怎么写啊,我的目的是,jsp发出一个请求到servlet上,servlet调用java查询类,并且把结果返回给jsp页面,然后以下拉菜单的形式显示刚刚查询的结果,当然,要能选择相应的选项。请高人。
对了,如果能不用那些复杂的标签最好,最好用html、jsp或者java脚本等能实现的。谢谢!

------解决方案--------------------
在JSP页面通过form或JS请求到Servlet、在Servlet里调用查询的Java类、 request.getRequestDispatcher("xx.jsp").forward(request,response)或response将结果返回到指定页面、
------解决方案--------------------
首先你用的不是servlet而是filter, 不建议将这种功能放在filter里面运行. 其次不知道你是想发送异步还是同步请求. 同步请求的话将你获得的那个List放入到request.setAttribute后可以在jsp页面通过request.getAttribute获取. 然后通过jsp代码循环读取.并打印.
如果是异步的话发送异步请求至服务器, 在服务器段将结果list生成为一个text或者json串返回给前台. 在前台页面使用js分析数据并生成相应的option
------解决方案--------------------
1,就你的需求而言,你需要用ajax,可以看一下jquery
2 , 既然用servlet 或者 filter 拦截请求的话,不知道你在web。xml配置 mapping了没有
------解决方案--------------------
探讨
在JSP页面通过form或JS请求到Servlet、在Servlet里调用查询的Java类、 request.getRequestDispatcher("xx.jsp").forward(request,response)或response将结果返回到指定页面、

------解决方案--------------------
数据类型较多返回一个集合对象
数据单一返回单一对象
------解决方案--------------------
我就直接回复了 楼主7楼那边你不是想动态创建一个select吗 我用JS给你写一点 你看看有用不
 var op =getElementById('select_id');
 var opti =document.createElement("option");
 for (i=0;i<arry.length;i++)
{
op.options.add(opti);
opti.value=opti.innerText=arry[i];
}
已测试 楼主可以试试
  相关解决方案