webapps

 

webapps----project----WEB-INF----classes---com

                           |----web.xml

<servlet>

   <servlet-name>AA</servlet-name>

   <servlet-class>com.AA</servlet-class>

</servlet>

<servlet-mapping>

   <servlet-name>AA</servlet-name>

   <url-pattern>/Hello.do</url-pattern>

</servlet-mapping>

 

startup.bat shutdown.bat

catalina.bat start||stop

 

http://localhost:8888/project/Hello.do

 

Servlet的生命周期:

初始化,服务,销毁

inti     service  destroy

 

servlet中做什么工作?

1.获取用户提交的数据

2 获取客户端附件的信息

3.处理数据(存储到数据库中,)

4.给用户一个新的响应

5.在响应中添加附加信息。

 

response.setContentType("text/html;charset=utf-8");

//request.setCharacterEncoding("utf-8");

String str = request.getParameter("key");

String str2 = new String(str.getBytes(),"utf-8");

String[] str = request.getParameterValues("key");

 

修改server.xml

<connector URIEncoding="utf-8"

 

String h = request.getHeader("key");

Enumeration e = request.getHeaderNames();

 

 

 

响应:

//设置响应类型

字符型的响应

response.setContentType("text/html;charset=utf-8");

PrintWriter out = response.getWriter();

out.println("<html></html>");

 

response.sendError(500,"fdsafafdsa");

 

 

字节型响应

response.setContentType(MIME类型);

OutputStream os = response.getOutputStream();

os.write();

 

文件的下载:

response.setContentType("bin");

//在响应中添加了附加的信息

response.addHeader("Content-Disposition", "attachment;filename=\""

                            + "aa.jpg" + "\"");

 

 

Servlet中利用响应完成重定向的工作:

response.sendRedirect(URL);

 

 

 

ServletContext(Servlet上下文对象)

容器提供的对象

1.相对路径转换为绝对路径

String path = "/mp3/1.jpg";

 

ServletContext ctx = getServletContext();

String realPath = ctx.getRealPath(path);

File file = new File(realPath);

 

2.可以获取容器的附加信息。

容器名称

容器版本

Servlet规范的版本号

 

3.全局容器

ServletContext ctx = getServletContext();

User user = new User();

String str = "";

int i=100;

 

ctx.setAttribute("a1",user);

ctx.setAttribute("a2",str);

ctx.setAttribute("a3",i);

 

User user = (User)ctx.getAttribute("a1");

 

ServletContext生命周期,容器启动时自动创建该对象,容器关闭时容器销毁该对象。

 

做什么工作?

不放业务数据。

 

系统的配置信息。

数据库的用户名和密码。上传文件的路径。

 

读取web.xml配置文件中关于servlet初始化参数的方法:

ServletConfig config = getServletConfig();

String value = config.getInitParameter("key");

 

CookieSession

HTTP协议的特点:无状态和单向性

 

//创建Cookie对象的key值和value值,只能是英文和数字

Cookie c = new Cookie("key","value");

c.setMaxAge();

response.addCookie(c);

 

Cookie[] cs = request.getCookies();

for(int i=0;i<cs.length;i++)

{

   String key = cs[i].getKey();

   if("key".equals(key))

   {

     cs[i].getValue();

   }

}

 

状态Cookie,持久化Cookie

c.setMaxAge();//持久化Cookie

c.setMaxAge(60*60*24*365);

 

同一个服务器可以给同一个客户端最大返回30Cookie20

 

 

 

Session的使用:

会话

 

HttpSession session = request.getSession(不填|true|false);

session.setAttriubte("key",Object obj);

session.setAttribute("key1","fdsafdsa");

session.setAttribute("",user);

 

User user = (User)session.getAttribute("key");

 

Session生命周期:

ServletContext(容器启动到关闭)

Session(生命周期是可变,可由设计人员决定其生命周期的时间)

 

 

Servlet

缺点:

显示HTML的时候,麻烦。out.println("<html>");

优点:

Servlet就是一个Java类。编写容器。

调试容易。IDE

 

JSP=HTML+Java代码

Java Server Pages(Java服务器端页面)

 

JSP运行的原理:

1.JSPServlet区别:

JSPServlet是本质相同的技术。容器负责编译JSP-----Servlet

表现形式。

Servlet---Java

JSP-------文本(静态资源)

 

 

 

1.JSP以源文件部署到容器中。(Servlet需要编译成class文件后,部署到容器中)

2.JSP部署到容器的根目录下,和静态资源位于相同的目录。(WEB-INF/classes

3.容器编译JSP的源文件到Servlet class类:有第一个请求访问JSP的时候,容器编译。如果部署到容器中的JSP源文件被修改了,容器会重新的编译JSPServlet

4.JSP---Servlet,类名:文件名_jsp.java

5.JSP中的HTML的代码后被JSP引擎放入到Servletout.write()函数中。

 

 

JSP中的嵌入Java代码必须放在指定的标记中。

1.JSP的三种原始标签

2.JSP的指令标签

3.JSP的动作标签

4.JSP2.0规范后,提出EL表达式

5.自动以的标签(JSTL标签库,struts标签库,分页标签库)

 

JSP中原始的三种标签

<%! %>------声明标签,声明变量和函数(声明的变量是成员变量,函数是和_jspService并列的函数体)

<%  %>------脚本标签  编译在_jspService函数体的内部

<%=Java表达式 %>------赋值标签  out.println(add(3,4));

 

 

作业1

20%概率显示你中奖了!~

 

作业2

把背景颜色根据输入的值进行改变用JSP来实现。

 

JSP的指令标签:

<%@ 标签名  属性= 属性=值。、。。。 %>

page include

 

<%@ page language="java"%>

language="java":

import="java.util.*,com.bluedot.User,"

<%@ page import="java.util.*"%>

<%@ page import="com.bluedot.User"%>

 

pageEncoding="UTF-8"----告诉JSP引擎,在解析我们的JSP的文件的时候用什么编码方式

                    ----

contentType="text/html; charset=utf-8"

 

response.setContentType("text/html; charset=utf-8");

 

作业3

把给客户端产生excel表格的例子改成用JSP来实现。(字符型响应)

 

<%@ page errorPage="error.jsp"%>

 

 

JSP中的内置对象(暗对象):9

JSP                              Servlet中的类型

request-------------------------HttpServletRequest

response------------------------HttpServletResponse

application---------------------ServletContext

session-------------------------HttpSession(受指令标签pagesession属性控制,默认可以使用)

config--------------------------ServletConfig

out-----------------------------PrintWriter(JspWriter)

exception-----------------------Exception(有条件的出现,当page指令的标签的isErrorPagetrue的时候)

page

pageContext

 

转载于:https://my.oschina.net/u/1273168/blog/177274

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值