java中request.getcontextPath()的意思

时间:2024.4.20

request.getcontextPath() 详解

文章分类:Java编程

<%=request.getContextPath()%>是为了解决相对路径的问题,可返回站点的根路径。

但不用也可以,比如<a href="<%=request.getContextPath()%>/catalog.jsp">,可以直接用<a href="catalog.jsp">也行,这两个文件是在同一个目录下的。比如你要生成一个文件放在服务器上得一个目录下,可以使用request.getContextPath()+/dir,组成一个完整得目录结构!

但在JSP文件里,有时通过request.getContextPath()得到的路径却为空,为什么? 

context中没有配置path属性,所以你的工程文件就是在根目录下,相当于path="";

即是你直接在浏览器中输入你的服务器ip就会到你的jsp页面,而不是tomcat的默认页面;所以你通过request.getContextPath()得到的字符串是为空的;它是获得虚目录的;
如果你想得到工程文件的实际物理路径,可通过:<%=request.getRealPath("/")%>,这样页面就会输出:d:/web。

参考servlet中的接口:

request.getScheme();
返回的协议名称,默认是http

request.getServerName()
返回的是你浏览器中显示的主机名,你自己试一下就知道了

getServerPort()
获取服务器端口号

request.getContextPath()应该是得到项目的名字,如果项目为根目录,则得到一个"",即空的字条串。如果项目为abc, <%=request.getContextPath()% > 将得到abc,服务器端的路径则会自动加上,<a href="XXXX.jsp"> 是指当前路径下的这个xxx.jsp页面,有时候也可以在head里设置html:base来解决路径的问题,不过用的最多的还是request.getContextPath。

在js文件中得到request.getContextPath()的值,不想在JSP中写太多的Javascript代码:

一种方法是用hidden:

<input type=hidden name=contextPath value=<%= request.getContextPath()>

再就是在本页面的js里面也是可以使用Scriptlet来赋值的:
var a = '<%= request.getContextPath()>'
或者你赋值给一个hidden的控件都是可以的,然后js取,这样js可以不用写在jsp里。

实际应用中,一般用来解决jsp测试和生产环境路径不同的问题: 

<%
 String appContext = request.getContextPath();
 String basePath = request.getScheme()+"://"+request.getServerName()+":"+ request.getServerPort() + appContext;
%>


第二篇:java


1. 与C、C++不同,Java在数组的定义中并不为数组元素分配内存,因此[ ]中不用指出数组

中元素的个数,即数组长度,而且对于如上定义的一个数组是不能访问它的任何元素的。

2. Java语言允许类型相同,而长度不同的两个数组互相赋值。赋值的结果是两个数组名指

向同一数组。

3. Java中数组长度在声明时不用指定,而是创建时由所开辟的内存单元数目确定。.

4. 字符串变量一般存放在StringBuffer类的对象中。

5. 基本类型被包装后就具有实例化,可被继承等面向对象的特征。

6. StringTokenizer("Helloworld!Thisis Java code,stringTokenizer Demo.", ",. ")分隔出7个子串。

7. 定义方法时可用数组作形参,且只指定数组名和数据类型,不指定长度。

8. 在java.util包中的Arrays类提供了一些操作数组的方法。

9. Map<K, V>或HashSet<Student>是java泛型,所操作的数据类型为指定类型。

10. 定义泛型类时,可以向类型参数指定任何类型信息,特别是集合框架操作中,可以最大

限度的提高泛型类的适用范围。

11. 和非泛型类一样,泛型类既可以作为父类也可以作为子类,在泛型类的继承层次中,全

部子类必须将泛型父类所需的类型参数沿继承层次向上传递。

12. Java并没有真正实现泛型,是编译器在编译的时候在字节码上做了手脚(称为擦除),

是编译器级别的,虚拟机并不知道有没有泛型。

13. 泛型本质上是指参数化类型。

14. 泛型的类型参数只能是类类型(包括自定义类),不能是基本数据类型。

15. 有序集list特性:允许有重复对象,对象的存储按照插入的顺序排列。

16. 映射map特性:集合中放置一对对象(关键字key-values),即key和values均为参数。不

允许有重复的key,key无顺序。

17. HashSet是无序集合的类,使用哈希表实现,因操作(查询、插入、删除等)速度快,

比较适用于内容规模较大的元素。

18. IP地址是一个32位的二进制地址,分为4组,每组8位,由小数点分开,用四个字节

来表示,每个字节的数值范围是0~255。

19. 端口不是机器上物理存在的场所,而是一个软件抽象概念,提出这个概念的目的是,1024

以下的端口号保留给预定义的服务。例如:http使用80端口。

20. 端口号的范围为0~65535之间,0~1023之间的端口数是用于一些知名的网络服务和应用。

21. Java提供的网络功能: URL, Socket, Datagram.

22. URL用来网络资源定位,它的值由5部分组成,格式如下: <传输协议>://<主机名>:<端口

号>/<文件名>#<引用>

23. URL对象创建后,就可以通过它来访问指定的WWW资源。这时需要调用URL类的

openStream()方法,该方法与指定的URL建立连接并返回一个InputStream类的对象,这样访问网络资源的操作就变成了我们熟悉的I/O操作,接下来就可以用字节流的方式读取资源数据。

24. Java提供了两个类Socket和ServerSocket,分别用来表示双向连接的客户端和服务端

25. 创建一个基于TCP的客户端程序,首先要创建Socket对象,该对象通过调用

getInputStream和getOutputStream方法获取输入流和输出流进行通讯。

26. 类URLConnection也是定义在包java.net里,它表示Java程序和URL在网络上的通信连

接。当与一个URL建立连接时,首先要在一个URL对象上通过方法openConnection()生成对应的URLConnection对象。

27. 在Java中,有一个用来存储internet地址的类是InetAddress

28. ServerSocket类用于侦听一个客户端的Socket连接,如果没有连接,它将一直等待。

29. 所谓数据报(Datagram)就跟日常生活中的邮件系统一样,是不能保证可靠的寄到的,

而面向链接的TCP就好比电话,双方能肯定对方接受到了信息。

30. 智能手机(如iphone、android)可以通过socket或http方式与服务器程序进行交互,是事

实上的C/S模式。

31. 顶层容器就是不包含在其它容器中的容器,Swing中常用的顶层容器有JFrame。中间容

器不能作为顶层容器,它必须包含在其它容器中,例如,可以将中间容器放到JFrame顶层容器中。

32. 布局管理器用来管理组件在容器中的布局格式。当容器中容纳多个组件时,可以使用布

局管理器将这些组件安排在一个容器中。

33. FlowLayout称为“流布局”,将组件从左到右顺序、流动的安排到容器中,直到占满上

方的空间,则向下移动一行,继续流动。

34. 布局操作中取消布局的方法是:setLayout(null)

35. 当容器的大小发生变化时,用FlowLayout管理的组件会发生变化,其变化规律是:组件

的大小不变,但是相对位置会发生变化。

36. BorderLayout称为“边界布局”,它允许将组件有选择地放置到容器的中部、北部、南部、

东部或西部.

37. 在使用BorderLayout的时候,如果容器的大小发生变化,其变化规律为:组件的相对位

置不变,大小发生变化。

38. 在基于Java的图形界面程序设计中,单击按钮会产生的事件是ActionEvent,判断关闭窗

口的事件,应添加WindowListener监听器.

39. CardLayout称为“卡片布局”,它将加入到容器的组件看成一叠卡片,只能看到最上面的

组件。通过调用CardLayout的一些方法,才能显示其中的组件。

40. GridLayout称为“网格布局”,它像表格一样,按行和列排列所有组件,且每个单元格大

小都一样;在向表格里面添加组件的时候,它们将按照从左到右,从上到下的顺序加入。使容器中各个组件呈网格状布局,平均占据容器的空间。

41. 常用的事件类包括ActionEvent(动作事件)、MouseEvent(鼠标事件)、KeyEvent(键盘

事件)等。

42. 监听接口中定义了抽象的事件处理方法,这些方法针对不同的操作进行不同的处理。

43. 适配器和监听接口所实现的功能相同,但适配器是类而不是接口,它实现对应监听接口

的多个事件处理方法(将这些方法都定义成空的),这样继承适配器后,可以仅重写需要的事件处理方法。

44. 事件包含三个组件:事件对象、事件源、事件处理程序

45. 监听类是实现监听接口的类,监听对象是监听类的实例化对象

46. 通过JFrame类的setJMenuBar()方法可以将菜单栏对象添加到框架的顶部,JFileChooser

类可用于打开和保存文件时所显示的对话框。JColorChooser是一个组件,而不是对话框,但该类中提供了一个用于创建颜色对话框的静态方法,该对话框包含颜色选择器组件。

47. TableModel本身是一个interface,在这个interface里面定义了若干的方法,包括了存取

表格字段(cell)的内容、计算表格的列数等等的基本存取操作,让设计者可以简单地利用TableModel来实现他所想要的表格

48. JPopupMenu是一种不固定在菜单栏中,随处浮动的弹出式菜单

49. 标准对话框有:消息对话框、确认对话框、输入对话框以及选项对话框4种

50. JTable并不存储自己的数据,而是从表格模型(TableModel)获取它的数据和操作方法。

51. Java数据库连接(Java Database Connectivity,JDBC),是一种用于执行SQL语句的Java API,

它由一组用Java编程语言编写的类和接口组成。

52. Java中通过JDBC-ODBC桥接方式实现ODBC功能调用

53. 在Java中可以采用数据源的方式访问和操作txt文件、excel、access及多种数据库文件。

54. DriverManager类是JDBC的管理层,作用于用户和驱动程序之间,跟踪可用的驱动程序,

并在数据库和相应驱动程序之间建立连接。该类负责加载、注册JDBC驱动程序,管理应用程序和已注册的驱动程序的连接。

55. 在JDBC中,SQL的查询结果使用ResultSet封装,JDBC通过ResultSet维持查询结果集,

并提供游标进行数据操作

56. ResultSet对象维持了执行某个SQL语句后满足条件的所有的行,并提供一系列访问结果

集中数据的方法,通过调用ResultSet对象的方法,处理返回结果

57. Statement接口用于执行静态的SQL语句,静态的SQL语句不需要接收任何参数。

Statement主要功能是将SQL语句传送给数据库,并将SQL语句的执行结果返回。通过Statement实现静态SQL查询,使用PreparedStatement实现动态SQL查询,使用CallableSatement实现存储过程的调用

58. ResultSet封装了Statement的executeQuery()方法返回的结果集,即符合SQL语句中指定

条件的所有行。

59. ResultSet类对象负责维护一个记录指针(Cursor),记录指针指向数据表中的某个记录,

通过适当的移动记录指针,可以存取数据库,加强程序的效率。

60. 在JDBC中执行数据库中的存储过程可以使用CallableStatement对象。

61. 在执行一个存储过程之前,必须先对其中的OUT参数进行类型注册,注册方式:

cstmt.registerOutParamenter(intindex,intsqlType);

62. 元数据(Meta Data),就是有关数据库和表格结构的信息,如:数据库中的表、表的列、

表的索引、数据类型、对SQL的支持程度等信息。DatabaseMetaData接口用于得到关于数据库的信息,ResultSetMetaData接口主要用来获取结果集的结构

63. JDBC默认的事务提交模式是自动提交。为了能将多个JDBC语句组合成一个操作单元,

以保证数据的一致性,可以禁止自动提交,之后把多个数据库操作的表达式作为一个事务,在操作完成后调用commit()来进行整体提交,倘若其中一个表达式操作失败,可以在异常捕获时调用rollback()进行回滚。通过setAutoCommit()方法控制自动提交模式,使用rollback()方法实现事务回滚

64. JDBC支持保存点操作,通过保存点,可以更好的控制事务回滚。

65. 常用的数据库存取优化方法有:使用prepared SQL语句和使用存储过程。

66. Email验证:\w+@\w+(\.\w+)+

67. 在Java中使用正则表达式,需要引入Java的java.util.regex包。java.util.regex包主要由

三个类所组成:Pattern、Matcher和PatternSyntaxException(用于匹配抛出的异常)

68. Pattern类没有提供公共的构造方法。要构建一个模式,首先必须调用公共的静态compile()

方法,它将返回一个Pattern对象。调用Pattern对象的matcher方法来获得一个Matcher对象。Java提供了Pattern和Matcher类进行正则表达式匹配

69. Matcher类是一个依靠输入的字符串来解析这个模式和完成匹配操作的对象。

70. 指定至少有一位数字,但不超过两个数字的正则表达式是[0-9]{1,2}

71. 正则表达式主要用来处理字符串,如匹配字符串、查找字符串、替换字符串等,一个正

则表达式就是由普通字符(例如字符a到z)以及特殊字符(称为元字符)组成的文字模式,常用的定义元素有元字符、字符类、转义字符、限定符、反义、逻辑或、分组等。

72. 正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配

更多相关推荐:
150篇Argumentative Essay Topics

150BestArgumentativeEssayTopicsPostedonJanuary24th20xxLookingforeffectiveandsimpletopicsforyourargumentativeessayHa...

How to write an argumentative essay

Howtowriteanargumentativeessay如何写英语议论文不同观点列举型选择型Thereisawidespreadconcernovertheissuethat作文题目Butitiswellk...

argumentative essay

ArgumentativeEssaysSummaryTheModesofDiscourseExpositionDescriptionNarrationArgumentationEDNAarecommonpaperassignmen...

argumentative essay

HUDSONCOLLEGEArgumentativeEssay400academicskillsTeacherMariaAimimirJunxiangTianJasonMarch25th20xxAreparentsthebestt...

Argumentative Essay Sample

ArgumentativeEssaySampleEconomicGrowthandEnvironmentalDamageThoughnowadaysitismoreoftenclaimedthathumanit...

Argumentative essay outline

ArgumentativeessayoutlineTitleIntroductionhooksentenceMakeyourreaderinterestedinyouressayBackgroundinformationProvi...

argumentative essay

Adrian120xx12220xx55AdvertisingcantellyoualotAboutaCountryGoodtimesbadtimestherewillalwaysbeadvertisingingoodtimesp...

Argumentative Writing-Tablet vs. Textbook

ArgumentativeWritingShouldTabletsReplaceTextbooksInthepresentagethephenomenonofseeingEbookintabletsisincreasinglypo...

Essay 1 outline (Shuwu Wei)

Essay1generaloutlineShuwuWeiTopicSmokinganditseffectonfamilymembersIntroductionSmokingisoneofthemostseriousproblems...

超级实用 Argumentative Speech

ArgumentativeSpeakingREADElementsofArgumentativeSpeakingSampleArgumentativeSpeechIntroMaketwotofourpoints...

Argumentative Essay on Automation Technology Change and Its Consequences

ArgumentativeEssayonAutomationTechnologyChangeandItsConsequencesAutomationisthesubstitutionofselfoperatingmachinery...

Argumentation .议论文特征

ArgumentationAims1Knowingtodefinetheterm2Comparingthisstyleofwritingwithexpositiondescriptionandnarration3Knowingre...

argumentative essay(32篇)