javaweb学习(二)----------Eclipse与web开发(jsp项目)

Eclipse与web开发(jsp项目)

1.使用Eclipse开发Web项目(JSP项目)
  • 先将Eclipse与jtomcat关联
    在这里插入图片描述
2.在Eclipse中创建的web项目:
浏览器可直接访问WebContent中的文件,在WEB-INF中的文件无法通过客户端(浏览器)直接访问,只能通过请求转发来访问
注意:并不是任何的内部跳转都能访问WEB-INF:原因是跳转有两种方式:请求转发、重定向。
3.配置tomcat运行环境
解决:The superclass “javax.servlet.http.HttpServlet” was not found on the Java Bu
https://jingyan.baidu.com/article/f79b7cb34f40569144023ef9.html.
4.部署tomcat
在servers面板新建一个tomcat实例,再在该实例中部署项目(右键–>add)之后运行
注意:一般建议将eclipse中的tomcat与本地tomcat的配置信息保持一致,将eclipse中的tomcat设置为托管模式:【第一次】创建tomcat实例之后,双击,选择Server Location的第二项。
5.统一字符集编码
a. 编码分类:
设置jsp文件的编码(jsp文件中的pageEncoding属性):jsp—>java
设置浏览器读取jsp文件的编码(jsp文件中的content属性)
一般将上述设置为一致编码(utf-8)
6.JSP页面元素:HTML 、java代码(脚本Scriptlet)、指令、注释
a.脚本Scriptlet
<%
				局部变量、java语句
%>
<%!
				全局变量、定义方法
%>
               <%=	输出表达式	%>
<%!
public String bookName;//全局变量
public void init(){
	bookName="java";
}
%>

<%
	String name="zhnagsan";
	out.print("hello..."+name+"<br/>");
%>

<%="hello<br/>"+bookName%>

          一般而言,修改web.xml、配置文件、java需要重启tomcat服务器
         但是如果修改jsp\html\css\js,不需要重启。
         注意:out.println()不能回车,要想回车:"<br/>"
即:out.print()和<%=%>可以直接解析HTML代码

b.指令
page指令:<%@ page·········%>
language:jsp页面使用的脚本语言
import:导入类
pageEncoding:jsp文件自身编码 jsp---->java
contentType:浏览器解析jsp的编码
c.注释
html注释: <!---->
java注释: // /**/
jsp注释: <%-- --%>

7.JSP内置对象(自带的,不需要new也能使用的对象)

  • out
    输出对象,向客户端输出内容

  • request
    请求对象,存储“客户端向服务端发送的请求信息”
    request对象的常见方法:
    String getParameter(String name):根据请求字段名key,返回字段值value(input标签的name属性)
    String[] getParameterValues(String name):根据请求的字段名key,返回多个字段值value(CheckBox)
    void setCharacterEncoding(“编码格式UTF-8”):设置post请求编码
    getRequestDispatcher(“b.jsp”).forward(request,response);:请求转发的方式跳转页面 A–>B
    servletContext getServerContext():获取项目的ServletContext对象
    注:
    get方式:
    method=“get” 和地址栏、超链接 <a href="xx">请求方式默认为get提交方式
    get与post提交方式的区别:
    a. get方式在地址栏显示请求信息;post不会显示
    b.文件上传操作,必须是post
    推荐使用post

  • response
    响应对象,向服务器端发送内容
    response对象的常见方法:
    void addCookie(Cookie cookie); :服务端向客户端增加cookie对象
    void sendRedirect(String location) throws IOException;:页面跳转的一种方式(重定向)
    void setContetType(String type);:设置服务端响应的编码(设置服务端的contetType类型)

区别请求转发重定向
代码形式getRequestDispatcher(“b.jsp”).forward(request,response);response.sendRedirect(“index1.jsp”);
地址栏是否改变不变改变
是否保留第一次请求时的数据保留不保留
请求次数12
  • session(服务端)
    会话对象
    先了解:
    Cookie(客户端,不是内置对象):Cookie是由服务端生成的,再发送给客户端保存,相当于本地缓存。
    作用:提高访问服务端的效率,但是安全性较差。
    Cookie:key=value
    javax.servlet.http.Cookie
    public Cookie(String key,String value)
    String getName();:获取name
    String getValue();:获取value
    void setMaxAge(int expiry);:最大有效期(秒)
    服务端准备Cookie:
    response.addCookie(Cookie cookie);
    页面跳转(转发,重定向)
    客户端获取cookie(只能一次将全部cookie获取):
    request.getCookies();

session机制:
客户端第一次请求服务端时:服务端会产生一个session对象(用于保存该客户的信息);
并且每一个session对象都会有一个唯一的sessionId(用于区分其他session);
服务端会产生一个cookie,并且该cookie的name=JSESSIONID,value=服务端sessionId的值;
然后服务端会在响应客户端的同时将该cookie发送给客户端,至此客户端就有了一个cookie(JSESSIONID);
客户端第二/n次请求服务端时:服务端会先用客户端cookie中的JSESSIONID去服务端的session中匹配sessionId。

session方法:
String getId();:获取sessionId
boolean isNew();:判断是否是新用户(第一次访问)
void invalidate();:使session失效(退出登录、注销)
void setAttribute();
Object getAttribute();
void setMaxInactiveInterval(秒):设置最大有效非活动时间

区别sessioncookie
保存的位置服务端客户端
安全性较安全较不安全
保存的内容ObjectString
  • application
    全局变量,获取当前项目的全部信息
    application方法:
    String getContextPath();:获取虚拟路径
    String getRealPath();:获取绝对路径

  • pageContext
    JSP页面容器

  • config
    配置对象(服务器配置信息)

  • page
    当前JSP页面对象(相当于java中的this)

  • exception
    异常对象

8.统一请求的编码 request(针对tomcat7)
get方式请求 如果出现乱码,解决:修改server.xml,一次性的更改tomcat默认get提交方式的编码(utf-8):URIEncoding=“UTF-8”
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值