找ctx代表什么。假如:pageContext.setAttribute("ctx", application.getContextPath());从上面的解说可以知道System.out.println(request.getContextPath())得出的是/news。故完整路径为:/news/admin/category/create.do。至于参数则根据实际研究。
可看到上路径为.do结尾。Spring MVC与Struts从原理上很相似(都是基于MVC架构),都有一个控制页面请求的Servlet,处理完后跳转页面。spring会自动扫描找到该路径对应的controller,如下图所示:
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
输出:
path:/E_WuLiu
basePath:http://localhost:8080/E_WuLiu/
getContextPath():得到当前应用的根目录
getScheme():它返回当前请求所使用的协议。 一般的应用返回 "http",对于ssl则返回"https"
getServerName():获取服务器名字,如果是在本地的话就是localhost
getServerPort():获得服务器的端口号
另外:jsp中获取客户端的浏览器和操作系统信息
string agent = request.getheader("user-agent");
stringtokenizer st = new stringtokenizer(agent,";");
st.nexttoken();
//得到用户的浏览器名
string userbrowser = st.nexttoken();
//得到用户的操作系统名
string useros = st.nexttoken();
取得本机的信息也可以这样:
操作系统信息
system.getproperty("os.name"); //win2003竟然是win xp?
system.getproperty("os.version");
system.getproperty("os.arch");
浏览器:
request.getheader("user-agent")
其他
request.getheader(“user-agent”)返回客户端浏览器的版本号、类型request.getContextPath是返回的项目上下文的名字(其实也就是项目名)
request. getHeader(string name):获得http协议定义的传送文件头信息,
request. getMethod():获得客户端向服务器端传送数据的方法有get、post、put等类型
request. getRequestURL():获取整个URL的路径请求(意思就是返回的浏览器地址栏的整个地址),为一个StringBuffer
request. getRequestUrI():获得发出请求字符串的客户端地址
request. getRealPath():是返回的文件所在的绝对路劲。相对于当前计算机的真实路径
request. getServletPath():获得客户端所请求的脚本文件的文件路径
request. getServerName():获得服务器的名字
request.getServerPort():获得服务器的端口号
request.getRemoteAddr():获得客户端的ip地址
request.getRemoteHost():获得客户端电脑的名字,若失败,则返回客户端电脑的ip地址
request.getProtocol():
request.getHeaderNames():返回所有request header的名字,结果集是一个enumeration(枚举)类的实例
request.getHeaders(string name):返回指定名字的request header的所有值,结果集是一个enumeration(枚举)类的实例