最近在修改项目的一个模块,项目本身是java + springMVC开发的,重新用.net来写一个模块块,因此需要从主页面跳转到.net页面,再从.net页面返回登录成功的主页面,现总结如下:
跳转到.net页面,在主页面图标添加点击事件。在URL中添加.net页面需要的参数即可;
从.net页面返回时,需要创建一个新的jsp,本项目中,
原来的登录页jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>欢迎进入食药通电子监管平台</title>
<style type="text/css">
body {
background-color: #95CBA5;
}
</style>
<link href="<%=request.getContextPath()%>/css/css05/food.css" rel="stylesheet" type="text/css" />
<link href="<%=request.getContextPath()%>/css/css05/base.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="<%=request.getContextPath()%>/ext3/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/ext3/ext-all.gzjs"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/ext3/ext-lang-zh_CN.js"></script>
<script type="text/javascript" >
window.onload = function ()
{
var map = new Ext.KeyMap(document, [{
key : Ext.EventObject.ENTER,
fn : function() { loginHandler();}
}
]);
var errMsg = "${loginUserPassError}";
if(errMsg!=null && errMsg !="")
{
var diverrMsg = $("errMsg");
diverrMsg.innerText = errMsg;
}
}
function $(name)
{
return document.getElementById(name);
}
/**
* 登录
*/
function loginHandler () {
Ext.Ajax.request(
{
url :"<%=basePath %>weblogin.do",
method : "POST",
form: 'loginform',
success : function(response) {
var result = Ext.util.JSON.decode(response.responseText);
if (result.success) {
var statusBar = new Ext.ProgressBar({
text : '正在登录...'
});
statusBar.show();
window.location.href = '<%=basePath %>main.jsp';
} else {
var diverrMsg = $("errMsg");
diverrMsg.innerText = result.msg;
$("password").value = "";
$("username").focus(true);
}
},
failure : function(response) {
}
});
}
</script>
<style type="">
</style>
</head>
<body class="">
<form action="<%=basePath %>login.do" method="post" id="loginform">
<div class="login_bg">
<div class=" h210 w300 ml0 mt0">
<div id="errMsg" style="color:red;text-align:center;"></div>
<div class="h60 w230 mauto">
用户名:
<div class="fl input_bg w230 mt4">
<div class="fl dsb">
<input id="username" name="username" type="text" value="" class="input w215"/>
</div>
</div>
</div>
<div class="h60 w230 mauto">
密码:
<div class="fl input_bg w230 mt4">
<div class="fl dsb">
<input id="password" name="password" type="password" value="" class="input w215"/>
</div>
</div>
</div>
<div class="login mauto mt18 ">
<!-- 改为submit按钮 -03-21 wxl
<a href="#" class="login_button"> </a>
-->
<input id="submit" name="submit" type="button" value="" class="login_button" οnclick="loginHandler();"/>
</div>
</div>
</div>
</form>
</body>
</html>
我的jsp是这样的:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@page import="com.htsoft.oa.service.system.AppUserService"%>
<%@page import="com.htsoft.oa.model.system.AppUser"%>
<%@page import="com.htsoft.core.util.AppUtil"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
AppUserService appUserService=(AppUserService)AppUtil.getBean("appUserService");
%>
<%
String userid=request.getParameter("myid"); String password=request.getParameter("mypwd");
if(null==userid||""==userid||null==password||""==password){
response.sendRedirect("weblogin.jsp");
return;
}
request.getSession().setAttribute("pwd", password);
long id=Long.parseLong(userid);
AppUser user=appUserService.findByUserId(id);
String username=user.getUsername();
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title><%=AppUtil.getCompanyName()%></title>
<script type="text/javascript" src="<%=request.getContextPath()%>/ext3/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/ext3/ext-all.gzjs"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/ext3/ext-lang-zh_CN.js"></script>
<script type="text/javascript">
window.onload = function ()
{
var map = new Ext.KeyMap(document, [{
key : Ext.EventObject.ENTER,
fn : function() { loginHandler();}
}
]);
var errMsg = "${loginUserPassError}";
if(errMsg!=null && errMsg !="")
{
var diverrMsg = $("errMsg");
diverrMsg.innerText = errMsg;
}
}
function $(name)
{
return document.getElementById(name);
}
function loginHandler () {
Ext.Ajax.request(
{
url :"<%=basePath %>login.do",
method : "POST",
form: 'loginform',
success : function(response) {
var result = Ext.util.JSON.decode(response.responseText);
if (result.success) {
var statusBar = new Ext.ProgressBar({
text : '正在登录...'
});
statusBar.show();
window.location.href = '<%=basePath %>main.jsp';
} else {
var diverrMsg = $("errMsg");
diverrMsg.innerText = result.msg;
$("password").value = "";
$("username").focus(true);
}
},
failure : function(response) {
}
});
}
</script>
</head>
<bodyοnlοad="loginHandler();">
<form method="post" id="loginform" name="myform">
<input id="username" name="username"type="hidden" value="<%=username%>"class="input w215"/>
<input id="password" name="password"type="hidden" value="<%=password%>"class="input w215"/>
</form>
</body>
</html>
通过地址栏获取登录需要的参数,将输入框设置为相应的"type="hidden" value="<%=username%>",type="hidden" value="<%=password%>"
这样通过url传递相应参数访问这个jsp就可以直接跳转到登录成功后的页面;
另外;
通过
if(null==userid||""==userid||null==password||""==password){
response.sendRedirect("weblogin.jsp");
return; //注意,在页面判断时必须使用return或加上else语句来实现。response.sendRedirect语句是在执行完本页面所有代码才跳转,若下面的参数有问题则会报错;
}
这段代码来判断访问是否合法,当.net页面超时时访问此页面就需从登录页面重新登录,满足项目的要求。