比如说两个表单,一个Servlet,两个表单提交到两个不同的方法中,要在这个Servlet中写两个自己命名的方法,该怎么做?
------解决方案--------------------
还要例子

写个例子,我是在以前老页面上写的,方便测试,把新写的方法摘出来,一堆import分不出哪个是哪个

@WebServlet(urlPatterns=“/test”)
public class Test extends HttpServlet{
@SuppressWarnings("unused")
private void functionA(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.getWriter().print("A");
}
@SuppressWarnings("unused")
private void functionB(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.getWriter().print("B");
}
protected void service(HttpServletRequest request, HttpServletResponse response) throws IOException {
//反射处理任何表单请求,只要方法存在
String type=request.getParameter("type");
Method[] methods=this.getClass().getDeclaredMethods();
for(Method method:methods){
if(method.getName().equals(type)){
method.setAccessible(true);
try{
method.invoke(this, request, response);
}catch(Exception e){
//NOOP
}
return;
}
}
//木有处理方法,显示测试页面
response.getWriter().append("<form action='?type=functionA' method='post'><input type='submit' value='functionA'></form>");
response.getWriter().append("<form action='?type=functionB' method='post'><input type='submit' value='functionB'></form>");
}
}
------解决方案--------------------
findByLoginnameAndLoginpassDao try块后面返回了什么东西,没贴出来啊,如果BeanUtils.populate不会抛出异常,后面的代码也无所谓,因为在这种情况下,findByLoginnameAndLoginpassDao方法除非是查询数据库出错,否则一定会返回一个user对象,通过user==null是无法判断数据库到底有没有返回数据
读取结果集部分可以稍微改一下,while块换成if else
if(!rs.next()){
return null;
}else{
//结果集应该不会有多条?
????????????????for?(int?i?=?1;?i?<=?n;?i++)?{
????????????????????String?s?=?rs.getMetaData().getColumnName(i).toLowerCase();
????????????????????Object?o?=?rs.getObject(i);
????????????????????map.put(s,?o);
????????????????}
}