第一个web项目+web入门知识

配置虚拟路径 识别项目文件

1.在tomcat的安装路径里  conf/server.xml文件里 <Host>中 写入<Context  docBase="D:/a"  Path="/a"/>

path里是相对路径 凡是访问相对路径 相当于访问docbase的那个路径(目的路径)

并且是需要重启

2.在conf/catalina中直接新建项目名.xml文件  写上述语句 直接写就可以  并且不需要重启

项目名就是你要读取的那个名字

虚拟主机

还是在server.xml  的engine中 增加一个<Host>

<Host appBase="项目实际位置 "  name=“www.suibian.com”  >

<Context  docBase="D:/a"  Path="/a"/>

</Host>

再把defaultHost=“www.suibian.com””改成网站名字

最后把windows->system32->drivers->etc->host 文件中增加

127.0.0.1  www.suibian.com

访问的时候 www.suibian.com:80

网站默认为80  当然也可以在server.xml的<connector>中修改端口号

第一个web项目

配置

勾选

浏览器能不能访问到,取决于web-inf中的web.xml文件中

<welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>

是访问次序

这个web-inf中的文件 只能通过请求转发才能访问 重定向不能访问到

servlet和jsp是可以互相转化的 将tomcat的lib里的servlet-api.jar的包 放进项目中(右键build path 

或者右键 build path  libaries  中的addlibary->  server  runtime

jsp本身就是servlet的一个子类

1)  <% String name="";

init();

%>  //这里面写一般的java语句 局部变量,java一定要写在这里面

2)  <%!

%>//全局变量

3)  <%=

%>//相当于out.print("")

回车  必须用html代码<br/>

指令 page指令  就比如这些

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>  import  是指导入的包

注释 

html注释<!--    -->

java注释//

jsp注释<%--    --%>

jsp内置对象(不需要new  也可以用)九大内置对象

1)out  输出对象

2)pageContext jsp页面容器 也叫page对象

3)request  存储客户端向服务端发送的信息

常见方法: String  setParameter(String name)根据请求的字段名返回字段值 比如 性别:返回女 年龄返回18

String[]  setParameterValues(String name)   同上 返回多个值

void  setCharacterEncoding("编码格式")

getRequestDispatcher("xx.jsp").forward(request,response)   请求转发

getServerContext()  获取项目的servercontext对象

request.setCharacterEncoding("utf-8");  post方式修改编码

4)response  响应  服务端响应客户端

void  addCookie(Cookie  cookie)  服务端向客户端增加Cookie对象

void  sendRedirect(String  location) 页面跳转  重定向

重定向和请求转发的区别

请求转发不改变地址栏 重定向会改变 

请求转发会保留第一次请求时候的数据  重定向不保留

请求转发向服务端发一次请求 重定向2次请求2次跳转

请求转发是在服务端发生跳转 重定向是客户端发出的第二次

void  setContentType(String  type)设置服务器响应的编码

5)session  服务端 会话  在同一个客户请求时共享

cookie  它不是内置对象 (需要new  他是客户端对象  却是由服务端产生,能提高访问效率

它的:public Cookie(String name ,String  value)

String   getName() 获取name

String  getValue()  获取value

void   set MaxAge(int  expiry)设置最大生命周期

服务端准备Cookie   response.addCookie(Cookie cooie)

客户端获取(转发重定向都行)   request.getCookie()

过程:new一个cookie  服务端得到cookie  重定向/请求转发到新页面,定义一个全局变量 就是你想保存的内容,通过客户端获取cookie数组 最后循环判断 如果name相同 获取value值

session就是会话  一个session对象自带sessionID,当第一次请求时,服务器的sessionid 复制一份 放进JSESSIONID  这个就放进了cookie里,cookie会发送给客户端,这样一个cookie对应了那个sessionid相对应 就不会乱 一一对应。

也就是说 哪怕我服务端不去addCookie 只要客户端第一次请求 都会创建一个JSESSIONID  

方法  String getId()  获取sessionid

boolean isNew()  判断是否为第一次访问

void  invaildate()注销,session失效

void setManInativeInterval()设置最大有效非活动时间

int  getMaxInactiveInteral()获取最大有效非活动时间

session和cookie相比 session更加安全  session的value值是Object  cookie是string

6)appliation  全局对象

String  getContextPath() 当前项目虚拟路径

String  getRealPath()  绝对路径

7)config 配置对象

8)page  当前页面对象

9)exception  异常对象

其中 四大范围对象分别是

pageContext  页面有效  也就是不在这个页面了 请求转发后就没了

 request 一次请求有效  也就是请求转发可以 重定向不行

session  一次会话有效,只有别关浏览器

appliation   整个项目都有效 (只对当前项目有效

(从小到大

都有这几个方法:

void  setAttribute(String name,Object  obj)  设置属性值  新增/修改  void  setAttribute(String a,Object  b)a的值改为b 

Object getAttribute(String name)根据属性名获取属性值

void  removeAttribute(String  name)删除对象  这个name就是属性名

猜你喜欢

转载自blog.csdn.net/weixin_39102319/article/details/88321365