1.新建一个javaweb项目:
-new----Others---Dynamic Web Project----添加 类名---选中添加xml文件的选项---Finish
-当在web项目下面导入jar包的时候 直接将 jar包文件 复制到 WebContent---WEB-INF
下面的lib文件即可; 在不使用框架的时候 所有web页面都放在WebContent下面
2.servlet 组件----javaEE组件 用来处理用户请求
- 处理哪一个请求(请求的地址)
- 怎么处理一个请求(处理方式自己写代码)
-servlet 组件怎么使用:
- 想让一个类成为Servlet组件需要具备几个要求
-1.继承父类 HttpServlet
-2.确定该Servlet 需要处理哪个请求
-配置 web.xml
-注解@webServlet
-3.怎么处理请求(代码写在哪)---重写service方法 --重写service方法的时候有两个重要
的参数,一个是HttpServletRequest 另一是 HttpServletResponse
-HttpServletRequest 用户请求对象(包含用户请求信息)
-HttpServletResponse 服务器相应信息(需要我们来设置)
-response.getWriter() 服务器通过输出流将内容输出到页面上面
-4.配置xml的servlet信息
<servlet-name> 这个是我们要注册servlet的名字,一般跟Servlet类名有关
<servlet-class> 这个就是指向我们要注册的servlet 的类地址, 要带包路径
以上两个包在一个servlet 节点之下.
<servlet-mapping> 是用来配置我们注册的组件的访问路径,里面包括两个节点
一个是 <servlet-name> 这个要与 前面写的servlet那么一直
另一个是 <url-pattern> 配置这个组件的访问路径
举个例子
<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>com.breeze.servlet.LoginServlet</servlet-class>
<load-on-startup>1</load-on-startup> 在服务启动的时候就创建一个对象
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name> 与上面的 <servlet-name> 要一致
<url-pattern>/servlet/LoginServlet</url-pattern>
</servlet-mapping>
可以在方法前面使用注解@WebServlet(urlPatterns="/abc",loadOnStartup=1)
-servlet生命周期--1.加载类--2.实例化(初始化--创建对象)---3.的同时会执行一个方法 init() --4.service 方法执行服务 ---5. 销毁
-----从servlet中如何显示一个页面:
--1.通过response调用getWriter()方法
--2.转发---找到项目中的一个jsp文件吧jsp文件读取出来 输出到浏览器;
--转发的方式是 request.getRequestDispatcher(arg0).forward(request,response); 参数为目录
--3.重定向----换一个url地址
--response.sendRedirect(arg0); 参数为重定向的目录
转发和重定向的区别;转发的是内部,重定向的是地址--重定向要比转发多一次请求;
转发是服务端的事件---重定向是客户端行为---转发不可以跨域,重定向可以跨域
4.常用方法:
传递参数的方式
get 方式 在地址之后使用 ?参数名=参数值&参数名=参数值;
post 方式 在from表单中 表单元素的name值为参数名 ,value值为参数值
eg:
<form action="../a" method="get"> 需要返回上一级目录 使用 .. 符号
<input name="id"><br>
<input name="pwd"><br>
<input type="submit">
request.getParameter(arg0); 在页面向后台传递参数
--get和--post区别 get 是通过url进行参数传递, post是通过封装数据包进行传递
--安全性来说是post稍微高于get----对于长度限制 基本上可以视为都没有
--get 是通过url进行参数传参数, 不同浏览器是url的长度是有限制的,并不是get限制
--post 没有长度限制,get 也没有长度限制--如果前台input框中有file文件上传的情况只能用post接收, 用get 收到的只能是文件的名字;
如果补充协议service方法,则调用弗雷的service方法. 判断该请求是get请求还是post请求
如果是get请求,则调用deGet方法,如果是post请求则调用doPost方法, 如果不重写service的话,则必须重写doGet或者doPost方法