各位大侠:
我在JSP页面上用自定义标签做了个导航栏。
具体的做法是:在标签类里写数据库的操作,从数据库中读取导航条的路径,再把它组合成html代码,用JspWriter的outout.println()方法输出到页面显示。
但是这样做,程序放在Windows环境中客户的IE浏览器可以正常访问,也就是说导航条可以正常显示出来。但是把程序放在Linux环境中运行的时候,客户IE浏览器访问的时候导航条就显示不出来!
请问这是哪里出了问题!
这个问题已经困扰了我好几个月了,请各位大侠帮忙,无尽感激!~~
我在JSP页面上用自定义标签做了个导航栏。
具体的做法是:在标签类里写数据库的操作,从数据库中读取导航条的路径,再把它组合成html代码,用JspWriter的outout.println()方法输出到页面显示。
但是这样做,程序放在Windows环境中客户的IE浏览器可以正常访问,也就是说导航条可以正常显示出来。但是把程序放在Linux环境中运行的时候,客户IE浏览器访问的时候导航条就显示不出来!
请问这是哪里出了问题!
这个问题已经困扰了我好几个月了,请各位大侠帮忙,无尽感激!~~
根据你的描述不可能有任何人能回答出来
不管你用什么服务器,客户端都是IE,不会是客户端的问题
首先从客户端HTML代码入手,看看生成的HTML代码有什么问题,一点一点跟踪进去肯定会找到问题
这是我的程序在Windows环境下运行输出到页面的导航栏的html代码:
<a href="/HR/loginAction.do?action=loginOut">退出登陆</a> 我的位置:<a href="/HR/loginAction.do?action=login">人事管理系统</a> > <a href="/HR/laborageMainAction.do?action=init ">薪资管理系统 </a> > <a href="/HR/authorAction.do?action=init ">审核作业 </a> > <a href="/HR/authorPieceSalaryAction.do?action=init ">记件工资审核 </a> 但是把程序放在Linux环境下运行,以上的html代码根本就不出来!
那我把标签类的内容发出来,这里所有的操作都都在标签类里写好的了:package com.shianco.web;
import javax.servlet.jsp.tagext.TagSupport;
import javax.servlet.jsp.JspException;
import com.shianco.service.IServiceFactory;
import com.shianco.service.ServiceFactory;
import com.shianco.service.security.IProgService;
import com.shianco.bean.security.impl.TProg;
import javax.servlet.jsp.JspWriter;
import java.io.*;/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2005</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/public class ShowPathTag
extends TagSupport {
private static IServiceFactory serFactory;
private static IServiceFactory myFactory;
private static IProgService iProgService; private static String requestName;
private String requestURL;
private String queryString; public ShowPathTag() {
serFactory = new ServiceFactory();
myFactory = (IServiceFactory) serFactory.factory("ServiceFactorySec");
iProgService = (IProgService) myFactory.factory("ProgTiger");
} public String getRequestName() {
return requestName;
} public void setRequestName(String requestName) {
this.requestName = requestName;
} public String getRequestURL() {
return requestURL;
} public void setRequestURL(String requestURL) {
this.requestURL = requestURL;
} public String getQueryString() {
return queryString;
} public void setQueryString(String queryString) {
this.queryString = queryString;
} public int doStartTag() throws JspException {
String requetURL1 =this.getRequestURL().substring(this.getRequestURL().
indexOf("HR") - 1, this.getRequestURL().length());
String requetURL = this.getRequestURL().substring(this.getRequestURL().
indexOf("HR") - 1, this.getRequestURL().length()) + "?" +
this.getQueryString();
String pathName = "";
String path = "";
String regName = this.getRequestName();
TProg tprog = null;
if (iProgService.loadTProgByProgId(regName).size() != 0) { tprog = (TProg) iProgService.loadTProgByProgId(regName).get(0);
pathName += tprog.getProgram();
if(tprog.getPathAction()==null||tprog.getPathAction().equals("")){
return SKIP_BODY;
}
String[] pathAction= tprog.getPathAction().split("action"); if (requetURL1.equals(pathAction[0].substring(0,pathAction[0].length()-1))&&!requetURL1.equals("/HR/loginAction.do")) {
path += requetURL1+"?action=init";
}
else {
path += "null";
return SKIP_BODY;
}
}
else {
return SKIP_BODY;
}
String programeNo = tprog.getProgramNo();
int programeNoLen = programeNo.length(); if (tprog.getProgramNo() == null || tprog.getProgramNo().equals("")) {
return SKIP_BODY;
} //获取除首页和最后一页以外的路径
while (programeNo.length() > 2) {
programeNo = programeNo.substring(0, programeNo.length() - 2);
TProg tprog1 = null;
if (iProgService.loadTProgByProgNo(programeNo).size() > 0) {
tprog1 = (TProg) iProgService.loadTProgByProgNo(programeNo).get(0);
pathName += " >" + tprog1.getProgram();
path += " >" + tprog1.getPathAction();
}
}
//获取首页的路径
if (iProgService.loadTProgByProgNo("00").size() > 0) {
TProg tprog2 = null;
tprog2 = (TProg) iProgService.loadTProgByProgNo("00").get(0);
pathName += " >" + tprog2.getProgram();
path += " >" + tprog2.getPathAction(); }
String[] pathName1 = pathName.split(">");
String[] path1 = path.split(">");
String pathName2 = "";
for (int i = pathName1.length - 1; i >= 0; i--) {
if (i == pathName1.length - 1) {
if (path1[i].equals("null ")) {
pathName2 += "</a> > " + pathName1[i];
}
else {
pathName2 += "<a href=" +
"\"" + path1[i] + "\"" + ">" + pathName1[i]+"</a>"; //<div class="text"><a href="http://www.163.com/">网易首页</a> > <a href="http://sports.163.com/">体育频道</a> > <a href=http://sports.163.com/nba/>NBA</a></div>
}
}
else {
if (path1[i].equals("null ")) {
pathName2 += "</a> > " + pathName1[i];
}
else {
pathName2 += " > " + "<a href=" + "\"" + path1[i] + "\"" +">" + pathName1[i]+"</a>";
}
}
}
try {
JspWriter out = pageContext.getOut();
//<div class=" + "\"" + "text" + "\"" + ">
pathName2 = "<a href=" + "\"" +
"/HR/loginAction.do?action=loginOut" + "\"" + ">" + "退出登陆</a>" +
" 我的位置:" + pathName2;
System.out.println("pathName2: "+pathName2);
//this.pageContext.getRequest().setAttribute("path",pathName2);/* BufferedWriter writeTo=new BufferedWriter(new FileWriter("\\home\\cvsroot\\www\\cvs\\HR\\WEB-INF\\classes\\showPath.txt", true));
writeTo.newLine();
writeTo.write(pathName2, 0, pathName2.length());
writeTo.close();*/ out.println(pathName2);
}
catch (IOException ex) {
ex.printStackTrace();
}
return SKIP_BODY;
}
public int doEndTag() throws JspException {
if (false) {
return SKIP_PAGE;
}
else {
return EVAL_PAGE;
}
}
}