package cn.kun.admin;
import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
import cn.kun.db.DbConnectionManager;public class adminLogin extends HttpServlet{
protected void doPost(HttpServletRequest req, HttpServletResponse res)throws IOException, ServletException{
doGet(req,res);
}
protected void doGet(HttpServletRequest req, HttpServletResponse res)throws IOException,ServletException{
res.setContentType("text/html;charset=gb2312");//包含响应中文情况
PrintWriter out = res.getWriter();//获得一个流
String admin = new String(req.getParameter("admin").getBytes("ISO-8859-1"));
String passwd = req.getParameter("passwd");
String checkCode = req.getParameter("checkCode"); String sqlStr;
ResultSet rs,rsS;
HttpSession session = req.getSession(); sqlStr = "select * from my_admin where uid='"+admin+"'and passwd='"+passwd+"'";
if(checkCode.equals(session.getAttribute("rand"))){
DbConnectionManager dbm = new DbConnectionManager();
try{
rs=dbm.executeQuery(sqlStr);
if( rs.next()){
session.setAttribute("admin",admin);
res.sendRedirect("updatePage.jsp");
}
else{
session.setAttribute("errMsg","对不起,你的用户名或者密码有错,请查证再登录");
res.sendRedirect("error.jsp");
} }
catch(Exception e){
e.printStackTrace();
}
}
else{
session.setAttribute("errMsg","对不起,你的验证码有错,请查证再登录");
res.sendRedirect("error.jsp");
}
}
}
import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
import cn.kun.db.DbConnectionManager;public class adminLogin extends HttpServlet{
protected void doPost(HttpServletRequest req, HttpServletResponse res)throws IOException, ServletException{
doGet(req,res);
}
protected void doGet(HttpServletRequest req, HttpServletResponse res)throws IOException,ServletException{
res.setContentType("text/html;charset=gb2312");//包含响应中文情况
PrintWriter out = res.getWriter();//获得一个流
String admin = new String(req.getParameter("admin").getBytes("ISO-8859-1"));
String passwd = req.getParameter("passwd");
String checkCode = req.getParameter("checkCode"); String sqlStr;
ResultSet rs,rsS;
HttpSession session = req.getSession(); sqlStr = "select * from my_admin where uid='"+admin+"'and passwd='"+passwd+"'";
if(checkCode.equals(session.getAttribute("rand"))){
DbConnectionManager dbm = new DbConnectionManager();
try{
rs=dbm.executeQuery(sqlStr);
if( rs.next()){
session.setAttribute("admin",admin);
res.sendRedirect("updatePage.jsp");
}
else{
session.setAttribute("errMsg","对不起,你的用户名或者密码有错,请查证再登录");
res.sendRedirect("error.jsp");
} }
catch(Exception e){
e.printStackTrace();
}
}
else{
session.setAttribute("errMsg","对不起,你的验证码有错,请查证再登录");
res.sendRedirect("error.jsp");
}
}
}
HttpServletRequest request = ServletActionContext.getRequest ();
HttpServletResponse response = ServletActionContext.getResponse();可以这么改,但是最后一个网上是Map session=(Map)ActionContext.getContext().get(ActionContext.SESSION);这么改,可是编译总出问题,能不能在此基础上来改的?
改改类名是不行的, 其实LZ的servlet要改成struts2也不难, 把你的doGet()方法中内容挪到execute 底下就行了。 struts2中为什么还非要使用request、response, 用map不是很好吗。 public class XAction extends ActionSupport {
private String admin ;
private String password;
private String checkCode ; // setter 、 getter public String execute() {
if("rand".equals(checkCode)) { ... 做你的查询操作。
return SUCCESS; // 需要在struts.xml 中配置你的跳转页面 或者你用annotation来写。
} else {
return LOGIN;
}
}
}具体struts2 怎么来写, 建议楼主看看书。 找个小例子跑跑
import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.*;
import javax.servlet.http.*;
import java.util.Map;import java.io.*;
import java.sql.*;
import cn.kun.db.DbConnectionManager;public class login extends ActionSupport {
public String execute() throws Exception {
HttpServletRequest req = ServletActionContext.getRequest ();//主要是为了使用session对象的setAttribute方法
HttpServletResponse res = ServletActionContext.getResponse (); //这个是为了实现对页面的跳转
res.setContentType("text/html;charset=gb2312");//包含响应中文情况 String admin = new String(req.getParameter("admin").getBytes("ISO-8859-1"));
String passwd = req.getParameter("passwd");
String checkCode = req.getParameter("checkCode"); String sqlStr;
ResultSet rs,rsS;
HttpSession session = req.getSession();//主要是为了实现对错误停息页面的跳转 sqlStr = "select * from my_admin where uid='"+admin+"'and passwd='"+passwd+"'";
if(checkCode.equals(session.getAttribute("rand"))){//这个是根据验证码来进行判断
DbConnectionManager dbm = new DbConnectionManager();//实例化数据库的操作
try{
rs=dbm.executeQuery(sqlStr);
if( rs.next()){
session.setAttribute("admin",admin);
res.sendRedirect("updatePage.jsp");
}
else{
session.setAttribute("errMsg","对不起,你的用户名或者密码有错,请查证再登录");
res.sendRedirect("error.jsp");
} }
catch(Exception e){
e.printStackTrace();
}
}
else{
session.setAttribute("errMsg","对不起,你的验证码有错,请查证再登录");
res.sendRedirect("error.jsp");
}
return checkCode;//这一句我实在不明白是返回什么了,貌似我也没有什么值要返回
}
}
在struts.xml文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd"><struts>
<package name="test1" namespace="/admin" extends="struts-default">
<action name="login" class="cn.kun.admin.login">
<result>/admin/login.jsp</result>
</action>
</package>
</struts>
想问问那个之前的return语句就是返回给result的吗
package cn.kun.admin;
import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.*;
import javax.servlet.http.*;
import java.util.Map; import java.io.*;
import java.sql.*;
import cn.kun.db.DbConnectionManager; public class login extends ActionSupport {
private String admin ;
private String password;
private String checkCode ; public String execute() throws Exception {
HttpServletRequest req = ServletActionContext.getRequest ();//主要是为了使用session对象的getAttribute方法
HttpServletResponse res = ServletActionContext.getResponse (); //这个是为了实现对页面的跳转 res.setContentType("text/html;charset=gb2312");//包含响应中文情况,在servlet里要用,在这里还要用吗? String sqlStr;
ResultSet rs,rsS;
HttpSession session = req.getSession();//主要是为了实现对错误停息页面的跳转 sqlStr = "select * from my_admin where uid='"+admin+"'and passwd='"+passwd+"'"; if(checkCode.equals(session.getAttribute("rand"))){//这个是根据验证码来进行判断
DbConnectionManager dbm = new DbConnectionManager();//实例化数据库的操作
try{
rs=dbm.executeQuery(sqlStr);
if( rs.next()){
session.setAttribute("admin",admin);
res.sendRedirect("updatePage.jsp");
}
else{
session.setAttribute("errMsg","对不起,你的用户名或者密码有错,请查证再登录");
res.sendRedirect("error.jsp");
} }
catch(Exception e){
e.printStackTrace();
}
}
else{
session.setAttribute("errMsg","对不起,你的验证码有错,请查证再登录");
res.sendRedirect("error.jsp");
}
return "success";
}
}
在struts.xml文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd"> <struts>
<package name="test1" namespace="/admin" extends="struts-default">//我想知道这个package的name属性是不是没有实质性的意思的 <action name="login" class="cn.kun.admin.login">
<result name="success">/login.jsp </result>
</action>
</package>
</struts> 麻烦帮忙一下,我也准备结帐
那我就再说一遍第一个:
res.setContentType("text/html;charset=gb2312");//包含响应中文情况,在servlet里要用,在这里还要用吗? 第二个:
<package name="test1" namespace="/admin" extends="struts-default">//我想知道这个package的name属性是不是没有实质性的意思的
麻烦帮忙一下,我也准备结帐
修改 删除 举报 引用 回复