JSP简介
JSP( java server page)
tomcat以及java的下载安装在这里就不说了,值得一说的是,关于tomcat的startup.bat闪退的问题 。
所有?经过筛选,比较能说明问题,如果有错误欢迎在评论区指正。
例1_1:
example1_1.jsp
<%@ page contentType="text/html;charset=GB2312" %> <HTML><BODY BGCOLOR=cyan> <h3>这是一个简单的JSP页面</h3> <% int i, sum=0; for(i=1;i<=100;i++) { sum=sum+i; } %> <h5> 1到100的连续和是: <%=sum %> <h5> </BODY><HTML>
打开tomcat的安装目录下的webapps\Root 将example1_1.jsp添加进目录,随后在安装路径下的/bin 中打开批处理文件startup.bat 启动服务器,tomcat默认使用8080端口,这时候在浏览器输入本地ip地址 http://127.0.0.1:8080/example1_1.jsp
就可以看到目标页面
有的人会出现以下乱码,比如我就出现了这个问题,那是因为使用的文本编译器而不是记事本(比如我用的notepad++和Atom),这种文本编译器在保存的时候仅仅是将消息以对应的编码集保存,但记事本在utf-8的编码集时会默认在最前面加上一个BOM字符,这也就导致了在txt中出现 联通 这种问题的情况,解决方案:使用UTF8-BOM编码、ANSI编码、或者GB-2312编码均可。
详见文本文档中“联通”与BOM的问题
新建web服务目录
如果想要其他子目录,可以在webapps下新建你想命名的文件夹,然后在该文件夹下新建文件夹 WEB-INF 随后该子目录就可以使用。
对服务目录进行操作需要对服务器进行重启。
首先我们在webapps中新建文件夹 study
然后我们打开study,在文件夹中新建文件夹WEB-INF,并把之前的example1_1.jsp复制进来。
随后访问 http://127.0.0.1:8080/study/example1_1.jsp
就可以看到目标界面
当需要将本地其他路径的目录作为web服务目录,并为该web服务目录指定虚拟目录,即隐藏web服务目录的实际位置,用户只能通过虚拟目录访问Web服务目录中的JSP页面时
我们需要在./conf/server.xml中进行设置,在最后添加一行
<Context path="/changeLoc" docBase="d:/xxxx" debug="0" reloadable="true"/> //在根目录下继续访问changeLoc子目录时在D:/xxxx 中寻找文件 debug = 0 ,自动加载 = true
重启服务器,随后我们访问这个虚拟位置,发现页面可以加载。(新路径下也必须是完整的web服务目录,WEB-INF和其他jsp文件也必须存在)
(注意:xml文件区分大小写和中英文字符)
JSP运行原理
当服务器上的JSP页面第一次被执行时,服务器上的JSP引擎首先将JSP页面文件转译成一个.java文件,并通过这个.java文件生成字节码文件,然后执行字节码文件响应客户的请求。JSP页面的首次执行往往由管理者来执行。
字节码的主要工作是:
(1)把JSP页面中的HTML标记符号(页面的静态部分)交给客户的浏览器负责显示。
(2)负责处理JSP标记,并将有关的处理结果发送到客户的浏览器。
(3)执行“<%”和“%>”之间的java程序片(JSP页面中的动态部分),并把执行结果交给客户的浏览器显示。
(4)当多个客户请求一个JSP页面时,Tomcat服务器为每个客户启动一个线程,该线程负责执行常驻内存的字节码文件来响应客户的请求。这些线程有Tomcat服务器来管理,将CPU的使用权在各个线程之间快速切换,以保证每个线程都有机会执行字节码文件。
(注意:如果对JSP页面进行了修改、保存,那么Tomcat服务器会生成新的字节码文件(最后修改时间))
像上面那个example1_1.jsp 如果我们使用F12或者右键查看源码,我们发现服务器端只收到了一个结果,java代码部分并没有被发送到客户端。
课后题:
1.安装Tomcat引擎的计算机需要事先安装JDK么?
· 需要,因为JSP是基于Java Servlet的改进,而Java Servlet是Java的一部分。
2.怎么启动和关闭Tomcat服务器?
· 启动:在安装路径下的/bin 中打开批处理文件startup.bat 启动服务器。
· 关闭:在安装路径下的/bin 中打开批处理文件shutdown.bat关闭服务器。
3.Boy.jsp和boy.jsp是否是相同的JSP文件名字?
· 不是,JSP是基于java的,java区分大小写。
4.请在D:\下建立一个名字为water的目录,并将该目录设置成一个web服务目录,然后编写一个简单JSP页面,保存到该目录中,让用户使用虚拟目录fish来访问该JSP页面。
· 在./conf/server.xml中进行设置,在后面添加一行
· <Context path = “/fish” docBase = “d:water” debug = “0” reloadable =”true”/>
· 然后打开服务器访问http://127.0.0.1:8080/fish/xxxx.jsp 即可
5.假设Dalian是一个Web服务器目录,其虚拟目录为moon,A.jsp保存在Dalian的子目录sea中,假设Tomcat服务器的端口为8080,则正确访问A.jsp的方式是:(D)
A. http://127.0.0.1:8080/A.jsp
B. http://127.0.0.1:8080/Dalian/A.jsp
C. http://127.0.0.1:8080/moon/A.jsp
D. http://127.0.0.1:8080/moon/sea/A.jsp
(书上为8080:/ 应该是印刷错误)
6.如果想修改Tomcat服务器的端口号,应当修改哪个文件?能否将端口号修改为80?
· 如果端口没有被其他程序占用就可以,可以在./conf/server.xml中进行设置,找到
· <Connector connectionTimeout=”20000″ port=”8080″ protocol=”HTTP/1.1″ redirectPort=”8443″/>
· 将port的8080修改为80
· 修改为80之后,则访问直接可以不用加端口号访问,因为HTML默认的端口号就是80。(http://127.0.0.1/moon/sea/A.jsp)
0 条评论