没多少分了,小问题请教,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(o