http://localhost:8080/struts2demo/online/userLogin.jsp
请求模式 :// 主机名名称(或者服务器名称) : 端口 / Servlet容器的名称(通常为项目名称) / 自定义的网页文件夹名或者映射中的文件包名 / 网页名称及其后缀或者响应动作
Eclipse 中是这样实现的 request.getScheme() :// request.getServerName() : request.getServerPort() / request.getContextPath() /
1,<base>标签问题
<base> 标签为页面上的所有链接规定默认地址或默认目标。通常情况下,浏览器会从当前文档的 URL 中提取相应的元素来填写相对 URL 中的空白。
使用 <base> 标签可以改变这一点。浏览器随后将不再使用当前文档的 URL,而使用指定的基本 URL 来解析所有的相对 URL。这其中包括 <a>、<img>、<link>、<form> 标签中的 URL。
写法为:<base href=" the_url ">,位置必须在<head></head>标签对中,通常是在最前面。
对于 Java Web 项目,一般来说,在某个页面中不指定 base 的值,当前路径默认为:请求模式 :// 主机名名称(或者服务器名称): 端口 / Servlet容器的名称(通常为项目名称)/ 页面所在一层或多层包名
2,返回值
定义如下一个函数:为什么出错?这是一个小学弟问我的问题,我想了想,的确有点意思。
public String[] type() {
String[] array = { "a", "b" };
return {"a", "b" };
}
Eclipse中的错误提示是这样的:
Multiple markers at this line
- This method must return a result of type String[]
- Syntax error, insert "}" to complete Block
- Syntax error, insert ";" to complete ReturnStatement
我想了想原因可能是这样的,首先,直观来说,return期望返回一个对象,当不能实现它的愿望时,变回出错,所以它不能作为一个对象,且不能转化为String[] 类型的,因为对它做字符串数组的强制转化是无效的;
其次,到底它是什么东西,仔细看一下就会发现,它其实就是一个错误写法的语句块和一个空语句。不过我们更愿意看做一个 Sring[] 类型的正确赋值方式。当你在 return 和它之间添加一个 ";" 符号时,便清楚了。
最后,它就是一个错误的语句块和一个空语句,或者称为 一个正确的对 String[] 类型赋值方式,只是被用错了。
参考资料:
HTML <base> 标签 http://www.w3school.com.cn/tags/tag_base.asp