读书人

使用Servlet response.getWriter()写的

发布时间: 2013-09-13 21:12:00 作者: rapoo

使用Servlet response.getWriter()写的页面中引用JS文件的大大大问题
由于项目的需要,需要单独增加一个接口功能,用于数据的导出。
采取jar包升级,所以不能单独写一个JSP页面,只能用servlet来写。
目前页面中无法引用js文件路径,求解!!~


为了打Jar包方便,我把Js文件挪到了类包中,不知行不行?

目前目录结构

/lrs_v2/src/com/lbs/lrs/ls/apps/dataexport
该包下存在的文件有(见图)
使用Servlet response.getWriter()写的页面中引用JS文件的大大大有关问题

代码:

/**
* 数据导出页面跳转
*/
@Override
protected void doGet(final HttpServletRequest request,
final HttpServletResponse response) throws ServletException,
IOException {

response.setContentType("text/html; charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("<HTML>");
out.println("<HEAD>");
out.println("<TITLE>数据导出</TITLE>");

out.println("<script language=\"javascript\" type=\"text/javascript\" src=\"jquery.js\"></script>");
out.println("<script language=\"javascript\" type=\"text/javascript\" src=\"jquery.validate.js\"></script>");
out.println("<script language=\"javascript\" type=\"text/javascript\" src=\"WdatePicker.js\"></script>");

out.println("</HEAD>");
out.println("<style type=\"text/css\">input {vertical-align:middle;}</style>");
out.println("<body>");
out.println("<form action=\"/dataexportsubmit\" method=\"post\" id=\"form\">");
out.println("<table width=\"800\" align=\"center\" border=\"0\">");
out.println("<caption align=\"left\">数据导出</caption>");
out.println("<tr><td>行政区划代码:</td><td><input id=\"aab301\" name=\"aab301\" class=\"required isZipCode\" maxlength=\"6\" width=\"20\" /></td></tr>");
out.println("<tr><td>数据期别:</td><td><input id=\"aae043\" name=\"aae043\" type=\"text\" class=\"required Wdate\" readonly=\"true\" onfocus=\"WdatePicker({skin:'whyGreen',dateFmt:'yyyyMM'})\" width=\"20\"/></td></tr>");
out.println("<tr><td>文件导出路径:</td><td><input id=\"dir\" name=\"dir\" type=\"text\" class=\"required\" readonly=\"true\" width=\"50\" /><button type=\"button\" onClick=\"selectPath()\">路径选择</button></td></tr>");
out.println("<tr></tr>");
out.println("<tr><td><input name=\"systype_lras\" value=\"1\" style=\"display:none;\" /></td><td><input type=\"submit\" value=\"导出数据\" /></td></tr>");
out.println("</table></form>");
out.println("</body>");


out.println("</HTML>");
out.println("<script type=\"text/javascript\">");
out.println("function selectPath() {");
out.println("try {");
out.println("var Message = \"请选择文件夹\"; var Shell = new ActiveXObject(\"Shell.Application\");var Folder = Shell.BrowseForFolder(0, Message, 0x0040, 0x11);");
out.println("if (Folder != null) {");
out.println("Folder = Folder.items(); Folder = Folder.item();Folder = Folder.Path;");
out.println("if (Folder.charAt(Folder.length - 1) != \"\\\\\") {Folder = Folder + \"\\\\\";}");
out.println("document.all.dir.value = Folder;return Folder;");
out.println("}} catch (e) {");
out.println("alert(e.message);}}");
out.println("jQuery.validator.addMethod(\"isZipCode\", function(value, element) {var tel = /^[0-9]{6}$/;return this.optional(element) || (tel.test(value));}, \"请正确填写您的行政区划代码\");");
out.println("function ajaxSubmit(frm, fn) {var dataPara = getFormJson(frm);$.ajax({url: frm.action,type: frm.method,data: dataPara,success: fn});}");
out.println("function getFormJson(frm) {var o = {};var a = $(frm).serializeArray();$.each(a, function () {if (o[this.name] !== undefined) {if (!o[this.name].push) {o[this.name] = [o[this.name]];}o[this.name].push(this.value || \"\");} else {o[this.name] = this.value || \"\";}});return o;}");
out.println("$(document).ready(function(){$(\"#form\").bind(\"submit\", function(){ajaxSubmit(this, function(data){alert(data);});return false;});});");
out.println("</script>");
}

@Override
protected void doPost(final HttpServletRequest request,
final HttpServletResponse response) throws ServletException,
IOException {
doGet(request, response);
}




Servlet JavaScript javaweb
------解决方案--------------------


还真有啊 ,,,

我晚上有时间 去试试

http://blog.csdn.net/jiangdragon/article/details/7827593
[解决办法]
我觉得应该是 部署名称+"/"+js的路径 因为它取uri 是用的 request.getRequestURI();

读书人网 >Java Web开发

热点推荐