1 在struts-config.xml中设置一个global-forwards
<global-forwards>
<forward name="login" path="/login.jsp" />
</global-forwards>2 如你所说,在LoginAction中session.setAttribute("userName",username)3 在index.jsp中添加如下标签:如果没有登录就会跳转到login.jsp
<logic:notPresent>
<logic:forward name=login/>
</logic:notPresent>
<global-forwards>
<forward name="login" path="/login.jsp" />
</global-forwards>2 如你所说,在LoginAction中session.setAttribute("userName",username)3 在index.jsp中添加如下标签:如果没有登录就会跳转到login.jsp
<logic:notPresent>
<logic:forward name=login/>
</logic:notPresent>
解决方案 »
- url 参数问题
- jsp实现下载功能弹出的文件保存框时,文件名不是设置的默认名、文件类型未知?速求正解
- 关于jsp乱码的问题
- The server encountered an internal error () that prevented it from fulfilling th
- spring ibatis struts ExceptionHandler异常处理
- 图书进销存项目视频教学下载
- java web 和C++client交互问题(高分)
- tomcat连接SQL Server出错,求救!!
- tomcat中调用bean出错?
- how to avoid poison message in weblogic 7 jms
- hibernate与struts的奇怪问题,大家都进来看看
- 怎样让InputStream 的内容显示在JTextArea中
<logic:forward name=login/>
</logic:notPresent>
<logic:forward name=login/>
</logic:notPresent>
就是如果session变量里面没有userName这个入口,那么自动前推到login的页面。
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.*;
import java.sql.*;public class LoginAction extends Action {
protected String checkUser(String username, String password) {
String user = null;
Connection conn=null;
PreparedStatement PrepStmt=null;
ResultSet rs=null;
try{
conn = DatabaseConn.getConnection();
String selectStatement="select yhm,mm from sysuser where yhm=? and mm=?";
PrepStmt=conn.prepareStatement(selectStatement);
PrepStmt.setString(1,username);
PrepStmt.setString(2,password);
rs=PrepStmt.executeQuery();
if (rs.next()){
user=new String(username);
}
}catch(Exception e){e.printStackTrace();}
return user;
} public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {
// HttpSession session = null;
String user = null;
String target = new String("success");
String username = ((LoginForm)form).getUsername();
String password = ((LoginForm)form).getPassword();
user = checkUser(username, password);
if ( user == null ) {
((LoginForm)form).setUsername("username");
((LoginForm)form).setPassword("password");
target = new String("failure");
}
else {
// session=request.getSession();
// session.setAttribute("userName",username)
request.setAttribute("USER", user);
}
return (mapping.findForward(target));
}
}
在这段代码中我想用session限制用户必须经过login.jsp才能登录到index.jsp,可是我把注释去掉的时候会出错,编译通不过,请问这是为什么?还有一个问题request.setAttribute("USER", user);
这一句的作用是什么?
2 request.setAttribute("USER", user);是指在request这个域里建立一个变量名为USER,值为user
一般JSP页面里有4个域page,request,session,application,它们的作用范围是
page<request<session<application
(USER)是你的user所属的类
2 在struts1.1以后里面有动态的form,你可以研究一下,就不用每次写很多FORM3 至于Action,也有一个DispatchAction什么的,用于减少Action数量 你可以查一下这方面资料