JavaEE学习笔记(Servlet、JSP、JSTL、EL)及相关案例(Session+Cookie+Filter实现免登录功能;一整套CURD操作案例等)

一、JavaEE开发基本技术及环境搭建

1、Java的三个体系
①、J2SE:基于桌面的应用软件的开发
②、J2ME:基于手机方面的开发
③、J2EE:企业级基于B/S结构的应用软件的开发

2、J2EE中两个极其重要的web组件
①、JSP:动态网页技术 HTML:用于开发静态网页技术
②、Servlet:业务控制器

3、服务器端的搭建,涉及到一个web服务器,只有安装了某个web服务器的那一端才承担,B/S结构中的这个B端
①、web服务器:tomcat,jboss ,weblogic等
②、Tomcat是apache公司的开源免费的web服务器
A:安装版的tomcat:
B:解压版的tomcat: 结合Eclipse+Tomcat 完成学习以及项目开发阶段的环境

首先启动Eclipse,启动后在eclipse中配置tomcat,后续再开发以及测试阶段直接在eclipse中启动tomcat即可
http://192.168.39.1:8080/j2ee01-environment/test.html

4、在Eclipse中创建动态的web项目,Dynamic Web Project
其目录结构如下

这里写图片描述

5、在WebContent下创建login.jsp jsp在后续中详细介绍,目前只需在jsp中的嵌入html代码即可
①、创建jsp文件
这里写图片描述

②、创建Servlet
这里写图片描述

③、要注意如下B/S图例
这里写图片描述

6、IP地址:IP地址是互联网上电脑的唯一身份,就像咱们的身份证号码一样,
IP的组成:是由四组0-255之间的整数组成 126.64.138.24
http://127.0.0.1:8080/j2ee01-environment/login.jsp
http://192.168.39.1:8080/j2ee01-environment/login.jsp

7、在jee环节,甚至是在项目开发过程中,经常会遇到404号错误(请求的目标组件找不到就会出现404)

8、HTTP协议:由万维网以及internet协会一起研讨出来的结果。Http(超文本传输协议)是一个面向无连接无状态基于请求与应答模式的应用层协议。
①、http协议的请求部分 由请求行、请求报头,空行,请求参数 四部分组成
②、http协议的响应部分 由状态行,响应报头,空行,消息正文 四部分组成
相关协议信息可以在浏览器上通过F12进入到调试窗口,单击network菜单,然后再页面部分刷新页面(F5),然后在后面的headers中可以查看相关的协议信息
这里写图片描述

9、B/S结构的请求应答模式流程图

这里写图片描述

10、请求周期:一个请求周期是从客户端浏览器发起一个请求,直到客户端浏览器看到请求的结果,这个期间即是一个请求周期

二、Servlet学习笔记
Servlet,Servlet是用Java编写的一个用于接收http请求的业务控制器
作用:可以接受http请求,并可以产生响应
1、开发人员怎样创建Servlet业务控制器呢?通过自定义类然后继承HttpServlet即可
根据实际需求重写init destroy service(doGet|doPost)方法

2、Servlet的生命周期,Servlet的生命周期通过几个方法完成
①、init:Servlet到初始化 创建Servlet实例时调用这个方法
②、service方法:是多个方法的统称,包括有doGet doPost doDelete doPut等,根我们实际相关的有doGet和doPost
③、destroy:消亡方法,在Servlet使用完毕后,由GC释放Servlet资源是调用destroy方法

3、Servlet的包,javax.servlet.http.*包下, HttpServlet

4、Servlet的映射
①、通过web.xml配置映射关系 web.xml是当前的web项目的配置文件,处于WEB-INF目录下

  <servlet>											
  	<servlet-name>aabbcc</servlet-name>										
  	<!-- 指定Servlet全类名 -->										
  	<servlet-class>com.action.MyServlet</servlet-class>										
  </servlet>											
  											
  <!-- 											
  	配置http请求的映射 										
  	url-pattern:设置请求的url地址										
  	servlet-name:设置请求的映射字符串,随便写,只要和..《serlvet》元素内《servlet-name》的值...一致即可										
  -->											
  <servlet-mapping>											
  	<servlet-name>aabbcc</servlet-name>										
  	<url-pattern>/abcd</url-pattern>										
  </servlet-mapping>											

web前端请求代码

	<a href="abcd">单击我提交到Servlet</a>				
					
	<form action="abcd">				
		<input type="submit" value="提交"/>			
	</form>				

②、通过@WebServlet这个注解(annotation完成映射,注意,在Servlet3.0版本之前是没有这个注解的,全部通过在web.xml中配置映射关系

//urlPatterns:设置映射的url,和<url-pattern>一样.注意,由于这个属性是String[],所以可以利用找一个知识完成多个请求url映射同一个Servlet上。
//注意:pattern的值必须是“/”开头,这个符号在这里代表当前项目的根目录 /user/add,可以归类不同类型的请求,比如将所有新闻的请求地址设置/news/add /news/delete
//默认情况下,servlet是在用户发起第一次对这个Servlet时才会被创建,但是可以通过loadOnStartup设置当前Servlet在Tomca启动后即创建
/*
loadOnStartup属性可以接收负值,0,以及正数
负数:是在第一次请求时被创建,即默认的。
0:是在tomcat启动时创建
正数:值越小,其优先级别越高
*/

@WebServlet(urlPatterns={"/user/add","/test","/abc"},loadOnStartup=1)											
public class AnnoServlet extends HttpServlet {											
	public void init() throws ServletException {										
		System.out.println("AnnoServlet.init() is running..............");									
	}										
											
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {										
		System.out.println("AnnoServlet.doGet()");									
	}										
}											

5、JavaEE中涉及到的对象,HttpServlet ServletConfig HttpServletRequest HttpServletResponse
①、HttpServlet对象即是Servlet, HttpServlet中提供了诸多方法,比如获取当前Servlet的全类名、获取ServletConfig对象等方法
System.out.println(this.getServletName());返回当前Servlet的全类名
②、HttpServletRequest对象:可以获取请求者的相关信息,获取当前Servlet的相关信息
比如获取当前请求的端口号 8080
比如获取请求中的参数 获取用户名的值 request.getParameter(“userid”);
比如获取请求的URL地址
等等
System.out.println(req.getMethod());
System.out.println(req.getLocalPort());
System.out.println(req.getRequestURL());
System.out.println(req.getRemotePort());
③、HttpServletResponse对象:是HttpServlet响应请求的对象,比如可以向响应的页面中传递参数等,设置相应的字符编码方式等

比如设置响应的结果画面的url地址 response.sendRedirect(“main.jsp”);

6、web前端发起请求的方式:
①、通过from表单发起一个请求
②、通过超链接发起一个请求,注意,超链接不像form那样可以通过指定method属性指定请求的方法,超链接只能发起get请求
③、通过通过JavaScript的location对象的href属性发起一个请求
④、直接在浏览器地址栏上写入地址发起请求
⑤、通过AJax发起一个异步请求

7、关于服务器端响应页面给请求者的方法
①、以重定向方式响应
通过response.sendRedirect(); response.sendRedirect(“index.jsp”);
②、以转发方式响应,
通过forword方法响应 request.getRequestDispatcher(“index.jsp”).forward(request, response);

8、get和post方式的区别
①、get方式会将相关url和参数显示在浏览器的地址栏上,而post方式是以io流的方式发起请求的,所以不会再地址栏中显示相关的参数
②、get和post方式提交的参数大小不同,get方式不能提交超过1024个字符
③、相对而言,post比get方式更加安全一些

9、再此强调
Servlet的映射过程
①、在web.xml中通过<servlet- mapping>和<servlet>元素进行映射
②、通过@WebServlet注解ÿ

  • 13
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值