两种异步交互的方法
var options = {
type: 'POST',
async: false,
dataType: 'content-type',
success: function(responseText) {
flag = ""+responseText;
}
}
$.post("<%=request.getContextPath()%>/sysorganizations.action?m=check&deptid="+deptid,
function(data){
if (data == 'false') {
alert("一天之内只可进行一次修改.");
return false;
}else{
//提交form基本信息
$('#myform').ajaxSubmit(options);
}
})
function submitMyForm1(){
var flag = "failure!";
var options = {
type: 'POST',
async: false,
dataType: 'content-type',
success: function(responseText) {
if(""==responseText||responseText.indexOf("success")!=-1){
//ymPrompt.succeedInfo({title:"提示",message:"保存成功"});
ymPrompt.succeedInfo({title:"提示",message:"全部保存成功",handler:function (){document.location.reload();}});
}else if(responseText.indexOf("ERROR1")!=-1){
ymPrompt.succeedInfo({title:"提示",message:"保存失败,无法正确获得文件",handler:function (){document.location.reload();}});
}else if(responseText.indexOf("ERROR2")!=-1){
ymPrompt.succeedInfo({title:"提示",message:"保存失败,文件类型不匹配,必须是2003版Excel,后缀名为xls",handler:function (){document.location.reload();}});
}else if(responseText.indexOf("ERROR3")!=-1){
ymPrompt.succeedInfo({title:"提示",message:"保存失败,无法解析Excel文件",handler:function (){document.location.reload();}});
}else if(responseText.indexOf("ERROR4")!=-1){
ymPrompt.succeedInfo({title:"提示",message:"保存失败,Excel文件内容为空,",handler:function (){document.location.reload();}});
}
else{
//ymPrompt.succeedInfo({title:"提示",message:"保存失败"});
var suc_count=responseText.substring(responseText.indexOf("SUC_COUNT")+9,responseText.indexOf("SUC_COUNT")+14)
var fai_count=responseText.substring(responseText.indexOf("FAI_COUNT")+9,responseText.indexOf("FAI_COUNT")+14)
ymPrompt.succeedInfo({title:"提示",message:suc_count+"条数据保存成功<br/>"+fai_count+"条数据保存失败",handler:function (){document.location.reload();}});
}
}
}
//提交form
$('#form2').ajaxSubmit(options);
}
JS这个方法可以保证在网页get方法提交时在url后缀添加的要提交到后台的参数 不被恶意注入
提前在前台进行 编码 后台进行解码
encodeURIComponent()
与encodeURI()不同的地方在于他连标点符号也会进行转义
后台
java.net.URLEncoder.encode()进行相应的解码
网页禁止右键菜单显示
jQuery(document).ready(function(){
jQuery(document).bind("contextmenu",function(e){
return false;
});
});
网页禁止复制粘贴 剪切 代码
<script type="text/javascript">
jQuery(document).ready(function()
{
jQuery(document).bind("cut copy paste",function(e) {
e.preventDefault();
});
});
</script>
获取客户端的IP地址
public static String getRemoteAddr(HttpServletRequest request) {
String ip = request.getHeader("x-forwarded-for");
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
return ip;
}
第二种方法:
String ip = null;
Enumeration enu = request.getHeaderNames();
while (enu.hasMoreElements()) {
String name = (String) enu.nextElement();
if (name.equalsIgnoreCase("X-Forwarded-For")) {
ip = request.getHeader(name);
} else if (name.equalsIgnoreCase("Proxy-Client-IP")) {
ip = request.getHeader(name);
} else if (name.equalsIgnoreCase("WL-Proxy-Client-IP")) {
ip = request.getHeader(name);
}
if ((ip != null) && (ip.length() != 0)) {
break;
}
}
if ((ip == null) || (ip.length() == 0)) {
ip = request.getRemoteAddr();
}
return ip;
}
工具类 设置 response 的属性 返回 html 或者xml
public static HttpServletResponse setCommonHtmlResponse(HttpServletResponse response) {
response.setContentType("text/html; charset=UTF-8"); //这里可以改成 text/xml 以设置返回为xml
response.setCharacterEncoding("UTF-8");
response.setHeader("Pragma", "No-cache");// HTTP 1.1
response.setHeader("Cache-Control", "no-cache");// HTTP 1.0
response.setHeader("Expires", "0");
return response;
}
获取距离今年,近N年的年份
public static List getNearlyFiveYears(int N) {
String currentYear = "";
SimpleDateFormat dateformat = new SimpleDateFormat("yyyy"); //设置格式
Calendar cd = Calendar.getInstance(); //日期类获取实例
cd.add(Calendar.YEAR, 0);
List list = new ArrayList();
try {
currentYear = dateformat.format(cd.getTime());
if(N>0){
for(int i=0;i<N;i++){
int year = Integer.parseInt(currentYear);
list.add(year-i);
}
}else if(N==0){
list.add(currentYear);
}
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
var options = {
type: 'POST',
async: false,
dataType: 'content-type',
success: function(responseText) {
flag = ""+responseText;
}
}
$.post("<%=request.getContextPath()%>/sysorganizations.action?m=check&deptid="+deptid,
function(data){
if (data == 'false') {
alert("一天之内只可进行一次修改.");
return false;
}else{
//提交form基本信息
$('#myform').ajaxSubmit(options);
}
})
function submitMyForm1(){
var flag = "failure!";
var options = {
type: 'POST',
async: false,
dataType: 'content-type',
success: function(responseText) {
if(""==responseText||responseText.indexOf("success")!=-1){
//ymPrompt.succeedInfo({title:"提示",message:"保存成功"});
ymPrompt.succeedInfo({title:"提示",message:"全部保存成功",handler:function (){document.location.reload();}});
}else if(responseText.indexOf("ERROR1")!=-1){
ymPrompt.succeedInfo({title:"提示",message:"保存失败,无法正确获得文件",handler:function (){document.location.reload();}});
}else if(responseText.indexOf("ERROR2")!=-1){
ymPrompt.succeedInfo({title:"提示",message:"保存失败,文件类型不匹配,必须是2003版Excel,后缀名为xls",handler:function (){document.location.reload();}});
}else if(responseText.indexOf("ERROR3")!=-1){
ymPrompt.succeedInfo({title:"提示",message:"保存失败,无法解析Excel文件",handler:function (){document.location.reload();}});
}else if(responseText.indexOf("ERROR4")!=-1){
ymPrompt.succeedInfo({title:"提示",message:"保存失败,Excel文件内容为空,",handler:function (){document.location.reload();}});
}
else{
//ymPrompt.succeedInfo({title:"提示",message:"保存失败"});
var suc_count=responseText.substring(responseText.indexOf("SUC_COUNT")+9,responseText.indexOf("SUC_COUNT")+14)
var fai_count=responseText.substring(responseText.indexOf("FAI_COUNT")+9,responseText.indexOf("FAI_COUNT")+14)
ymPrompt.succeedInfo({title:"提示",message:suc_count+"条数据保存成功<br/>"+fai_count+"条数据保存失败",handler:function (){document.location.reload();}});
}
}
}
//提交form
$('#form2').ajaxSubmit(options);
}
JS这个方法可以保证在网页get方法提交时在url后缀添加的要提交到后台的参数 不被恶意注入
提前在前台进行 编码 后台进行解码
encodeURIComponent()
与encodeURI()不同的地方在于他连标点符号也会进行转义
后台
java.net.URLEncoder.encode()进行相应的解码
网页禁止右键菜单显示
jQuery(document).ready(function(){
jQuery(document).bind("contextmenu",function(e){
return false;
});
});
网页禁止复制粘贴 剪切 代码
<script type="text/javascript">
jQuery(document).ready(function()
{
jQuery(document).bind("cut copy paste",function(e) {
e.preventDefault();
});
});
</script>
获取客户端的IP地址
public static String getRemoteAddr(HttpServletRequest request) {
String ip = request.getHeader("x-forwarded-for");
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
return ip;
}
第二种方法:
String ip = null;
Enumeration enu = request.getHeaderNames();
while (enu.hasMoreElements()) {
String name = (String) enu.nextElement();
if (name.equalsIgnoreCase("X-Forwarded-For")) {
ip = request.getHeader(name);
} else if (name.equalsIgnoreCase("Proxy-Client-IP")) {
ip = request.getHeader(name);
} else if (name.equalsIgnoreCase("WL-Proxy-Client-IP")) {
ip = request.getHeader(name);
}
if ((ip != null) && (ip.length() != 0)) {
break;
}
}
if ((ip == null) || (ip.length() == 0)) {
ip = request.getRemoteAddr();
}
return ip;
}
工具类 设置 response 的属性 返回 html 或者xml
public static HttpServletResponse setCommonHtmlResponse(HttpServletResponse response) {
response.setContentType("text/html; charset=UTF-8"); //这里可以改成 text/xml 以设置返回为xml
response.setCharacterEncoding("UTF-8");
response.setHeader("Pragma", "No-cache");// HTTP 1.1
response.setHeader("Cache-Control", "no-cache");// HTTP 1.0
response.setHeader("Expires", "0");
return response;
}
获取距离今年,近N年的年份
public static List getNearlyFiveYears(int N) {
String currentYear = "";
SimpleDateFormat dateformat = new SimpleDateFormat("yyyy"); //设置格式
Calendar cd = Calendar.getInstance(); //日期类获取实例
cd.add(Calendar.YEAR, 0);
List list = new ArrayList();
try {
currentYear = dateformat.format(cd.getTime());
if(N>0){
for(int i=0;i<N;i++){
int year = Integer.parseInt(currentYear);
list.add(year-i);
}
}else if(N==0){
list.add(currentYear);
}
} catch (Exception e) {
e.printStackTrace();
}
return list;
}