if(passed1==true&&passed2==true){response.sendRedirect("login.jsp");}
应该放到程序哪才不报错?package com.yourcompany.struts.action;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.ArrayList;
import dao.LoginDao; public class Validaction extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
String qxfp =request.getParameter("qxfp");
String username =request.getParameter("username");
System.out.println(qxfp+username);
if(qxfp!=null&&username==null){
boolean passed1 = validateDate1(qxfp,request.getRemoteAddr());
response.setContentType("text/xml");
response.setHeader("Cache-Control", "no-cache");
String message1 = "此岗位未授权予本机!";
if (passed1) {
message1 = "√";
}
System.out.println(message1+passed1);
out.println("<response>");
out.println("<passed1>" + Boolean.toString(passed1) + "</passed1>");
out.println("<message1>" + message1 + "</message1>");
out.println("</response>");
out.close();
}
if(qxfp!=null&&username!=null){
boolean passed2 = validateDate2(qxfp,username);
response.setContentType("text/xml");
response.setHeader("Cache-Control", "no-cache");
String message2 = "该岗位无此用户名!";
if (passed2) {
message2 = "√";
}
System.out.println(message2+passed2);
out.println("<response>");
out.println("<passed2>" + Boolean.toString(passed2) + "</passed2>");
out.println("<message2>" + message2 + "</message2>");
out.println("</response>");
out.close();}
}
private boolean validateDate1(String date,String date0) {
boolean isValid = true;
LoginDao loginDao=new LoginDao();
ArrayList ips=loginDao.getIpByQxfp(date);
int size = ips.size();
if(size>0){
for(int i=0;i<size;i++){
String dateIp = (String)ips.get(i);
System.out.println(dateIp);
if(dateIp.equals(date0)) {
isValid = true;
break; }
else isValid = false;
continue;
}}
else isValid = false;
return isValid;
}
private boolean validateDate2(String date,String date0) {
boolean isValid = true;
LoginDao loginDao=new LoginDao();
ArrayList usernames=loginDao.getUsernameByQxfp(date);
int size = usernames.size();
if(size>0){
for(int i=0;i<size;i++){
String user = (String)usernames.get(i);
System.out.println(user);
if(user.equals(date0)) {
isValid = true;
break; }
else isValid = false;
continue;
}}
else isValid = false;
return isValid;
} }
应该放到程序哪才不报错?package com.yourcompany.struts.action;
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.ArrayList;
import dao.LoginDao; public class Validaction extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
String qxfp =request.getParameter("qxfp");
String username =request.getParameter("username");
System.out.println(qxfp+username);
if(qxfp!=null&&username==null){
boolean passed1 = validateDate1(qxfp,request.getRemoteAddr());
response.setContentType("text/xml");
response.setHeader("Cache-Control", "no-cache");
String message1 = "此岗位未授权予本机!";
if (passed1) {
message1 = "√";
}
System.out.println(message1+passed1);
out.println("<response>");
out.println("<passed1>" + Boolean.toString(passed1) + "</passed1>");
out.println("<message1>" + message1 + "</message1>");
out.println("</response>");
out.close();
}
if(qxfp!=null&&username!=null){
boolean passed2 = validateDate2(qxfp,username);
response.setContentType("text/xml");
response.setHeader("Cache-Control", "no-cache");
String message2 = "该岗位无此用户名!";
if (passed2) {
message2 = "√";
}
System.out.println(message2+passed2);
out.println("<response>");
out.println("<passed2>" + Boolean.toString(passed2) + "</passed2>");
out.println("<message2>" + message2 + "</message2>");
out.println("</response>");
out.close();}
}
private boolean validateDate1(String date,String date0) {
boolean isValid = true;
LoginDao loginDao=new LoginDao();
ArrayList ips=loginDao.getIpByQxfp(date);
int size = ips.size();
if(size>0){
for(int i=0;i<size;i++){
String dateIp = (String)ips.get(i);
System.out.println(dateIp);
if(dateIp.equals(date0)) {
isValid = true;
break; }
else isValid = false;
continue;
}}
else isValid = false;
return isValid;
}
private boolean validateDate2(String date,String date0) {
boolean isValid = true;
LoginDao loginDao=new LoginDao();
ArrayList usernames=loginDao.getUsernameByQxfp(date);
int size = usernames.size();
if(size>0){
for(int i=0;i<size;i++){
String user = (String)usernames.get(i);
System.out.println(user);
if(user.equals(date0)) {
isValid = true;
break; }
else isValid = false;
continue;
}}
else isValid = false;
return isValid;
} }
不需要这么写吧
if(passed1&&passed2){response.sendRedirect("login.jsp");}
就可以了
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.ArrayList;
import dao.LoginDao; public class Validaction extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
String qxfp =request.getParameter("qxfp");
String username =request.getParameter("username");
System.out.println(qxfp+username);
if(qxfp!=null&&username==null){
boolean passed1 = validateDate1(qxfp,request.getRemoteAddr());
response.setContentType("text/xml");
response.setHeader("Cache-Control", "no-cache");
String message1 = "此岗位未授权予本机!";
if (passed1) {
message1 = "√";
}
System.out.println(message1+passed1);
out.println(" <response>");
out.println(" <passed1>" + Boolean.toString(passed1) + " </passed1>");
out.println(" <message1>" + message1 + " </message1>");
out.println(" </response>");
out.close();
}
if(qxfp!=null&&username!=null){
boolean passed2 = validateDate2(qxfp,username);
response.setContentType("text/xml");
response.setHeader("Cache-Control", "no-cache");
String message2 = "该岗位无此用户名!";
if (passed2) {
message2 = "√";
}
System.out.println(message2+passed2);
out.println(" <response>");
out.println(" <passed2>" + Boolean.toString(passed2) + " </passed2>");
out.println(" <message2>" + message2 + " </message2>");
out.println(" </response>");
out.close();}
}
private boolean validateDate1(String date,String date0) {
boolean isValid = true;
LoginDao loginDao=new LoginDao();
ArrayList ips=loginDao.getIpByQxfp(date);
int size = ips.size();
if(size>0){
for(int i=0;i <size;i++){
String dateIp = (String)ips.get(i);
System.out.println(dateIp);
if(dateIp.equals(date0)) {
isValid = true;
break; }
else isValid = false;
continue;
}}
else isValid = false;
return isValid;
}
private boolean validateDate2(String date,String date0) {
boolean isValid = true;
LoginDao loginDao=new LoginDao();
ArrayList usernames=loginDao.getUsernameByQxfp(date);
int size = usernames.size();
if(size>0){
for(int i=0;i <size;i++){
String user = (String)usernames.get(i);
System.out.println(user);
if(user.equals(date0)) {
isValid = true;
break; }
else isValid = false;
continue;
}}
else isValid = false;
return isValid;
} }
首先:
---------------------
这个验证程序用于AJAX 登录验证,此Servlet 输出内容为验证后的 xml 内容,浏览器端javascript 在异步获取xml数据以后根据返回的结果执行相应的功能
所以应该是一个AJAX 登录的实例
此Servlet 只是提供验证的结果,并不存在任何功能性的返回结果
---------------------
正确的操作
javascript:function AJAXResponse(xmlDom){
try{
var passed1=xmlDom.selectSingleNode("//passed1").nodeValue.replace(/^\d+|\d+$/g,"");
var passed2=xmlDom.selectSingleNode("//passed2").nodeValue.replace(/^\d+|\d+$/g,"");;
if((passed1=="true" || passed1==true) && (passed2=="true" || passed2==true) )){
window.location="login.jsp";
}
catch(e){
alert(e);
}
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setCharacterEncoding("UTF-8");
PrintWriter out = response.getWriter();
String qxfp =request.getParameter("qxfp");
String username =request.getParameter("username");
System.out.println(qxfp+username);
boolean passed1 = validateDate1(qxfp,request.getRemoteAddr());
boolean passed2 = validateDate2(qxfp,username);
if(qxfp!=null&&username==null){
response.setContentType("text/xml");
response.setHeader("Cache-Control", "no-cache");
String message1 = "此岗位未授权予本机!";
if (passed1) {
message1 = "√";
}
System.out.println(message1+passed1);
out.println("<response>");
out.println("<passed1>" + Boolean.toString(passed1) + "</passed1>");
out.println("<message1>" + message1 + "</message1>");
out.println("</response>");
out.close();
}
if(qxfp!=null&&username!=null){
response.setContentType("text/xml");
response.setHeader("Cache-Control", "no-cache");
String message2 = "该岗位无此用户名!";
if (passed2) {
message2 = "√";
}
System.out.println(message2+passed2);
out.println("<response>");
out.println("<passed2>" + Boolean.toString(passed2) + "</passed2>");
out.println("<message2>" + message2 + "</message2>");
out.println("</response>");
out.close();}
if(passed1&&passed2){response.sendRedirect("index.jsp");//这一行
return;}
}
private boolean validateDate1(String date,String date0) {
boolean isValid = true;
LoginDao loginDao=new LoginDao();
ArrayList ips=loginDao.getIpByQxfp(date);
int size = ips.size();
if(size>0){
for(int i=0;i<size;i++){
String dateIp = (String)ips.get(i);
System.out.println(dateIp);
if(dateIp.equals(date0)) {
isValid = true;
break; }
else isValid = false;
continue;
}}
else isValid = false;
return isValid;
}
private boolean validateDate2(String date,String date0) {
boolean isValid = true;
LoginDao loginDao=new LoginDao();
ArrayList usernames=loginDao.getUsernameByQxfp(date);
int size = usernames.size();
if(size>0){
for(int i=0;i<size;i++){
String user = (String)usernames.get(i);
System.out.println(user);
if(user.equals(date0)) {
isValid = true;
break; }
else isValid = false;
continue;
}}
else isValid = false;
return isValid;
}
}
Servlet.service() for servlet Validaction threw exception
java.lang.IllegalStateException
at org.apache.catalina.connector.ResponseFacade.sendRedirect(ResponseFacade.java:432)
at com.yourcompany.struts.action.Validaction.doGet(Validaction.java:47)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:619)