没多少分了,小问题请教,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了没有
[解决办法]