当前位置:文档之家› Servlet笔记

Servlet笔记

Servlet笔记
Servlet笔记

目录

第一章服务器环境搭建 (2)

1.Tomcat服务器环境搭建 (2)

2. tomcat文件结构 (2)

第二章Servlet (3)

1.定义: (3)

2.servlet的生命周期 (3)

3.使用MyEclipse创建servlet流程 (3)

4.Web Project文档目录说明 (4)

5.web.xml的配置归纳 (4)

[1]配置servlet类 (4)

[2]配置Servlet的实例化顺序: (5)

[3]配置初始化参数 (5)

[4]配置ServletContext (5)

[5]配置Session有效时间 (6)

6. doget()和dopost()向servlet发送请求的区别 (6)

7.servlet的类和接口 (6)

7.1javax.servlet包: (7)

(1)Servlet接口: (7)

(2)ServletConfig接口:servlet 配置对象 (7)

(3)ServletContext接口:ServletContext(服务器-公共空间) (8)

(4) ServletRequest接口: (9)

(5)ServletResponse接口: (10)

(6) Filter接口:过滤器 (10)

(7) ServletContextListener接口:监听器 (12)

7.2javax.servlet.http包: (14)

(1) HttpSession接口:session(服务器-浏览器空间) (14)

(2)HttpServletRequest接口 (15)

(3)HttpServletResponse接口 (15)

(4) HttpServlet类 (15)

(5) Cookie类 (16)

第三章常用技术归纳 (17)

1.参数传递归纳: (17)

2.在Servlet中操作数据库 (18)

3.分页显示技术 (18)

4.数据库连接池技术 (18)

第一章服务器环境搭建

1.Tomcat服务器环境搭建

(1)环境变量配置

①java-path: //配置JDK

②tomcat-path: //配置服务器主目录

(2)服务器端口配置

在server.xml文件中Connector标签:四位数,最多65523,但一般网络用80开头

(3)启动服务启:执行Bin目录下的startup.bat脚本文件。

(4)浏览器中进入服务器

localhost:8080 //本机服务器

127.0.0.1:8080 //本机服务器

192.168.1.216:8080 //服务器ip地址:端口号

2.tomcat文件结构

(1)在tomcat文件目录中新建项目

tomcat->webapps下新建项目文件夹

WEB-INF的文件结构

/classes:servlet的class文件

/lib:jar包

web.xml:Servlet的配置文件

web.xml的全部内容

第二章Servlet

1.定义:

服务端的java程序。

servlet只有一个对象。支持多线程,无成员属性,不会资源不一致。

方法变量属于各线程计数器管理。

2.servlet的生命周期

①浏览器:http请求->服务器:查找web.xml

②-->无Servlet对象就实例化Servlet->调用init()方法初始化->service()方法

有Servlet对象->调用service()方法(判断请求的类型,调用对应的方法)

③-->response()方法响应浏览器

④-->关闭服务器,调用destroy(),销毁对象。

3.使用MyEclipse创建servlet流程

①将Tomcat服务器添加到MyEclipse

Servers选项卡-Configure Servers Connector

选择自己的服务器类型,指定路径,完成添加。

②创建web_project

java EE version :JavaEE 6 -web3.0

Java version :1.7

③创建Servlet继承HttpServlet,重写doGet()和doPost方法

④配置web.xml

servlet的名称、bao.类;

servlet映射的名称、路径

test1

Simple.test1

test1

/test1

⑤发布程序到服务器

Deploy MyEclipse J2EE Project to Server

⑥在浏览器发送请求

http://localhost:8001/Servlet/test1

地址:端口/项目名/类名

4.Web Project文档目录说明

webRoot根目录

META-INF:配置文件

WEB-INF->

/lib:jar包

web.xml:将覆盖Tomcat服务器中的web.xml

5.web.xml的配置归纳

[1]配置servlet类

①servlet的名称、bao.类;②servlet映射的名称、路径

test1

Simple.test1

test1

/test1

[2]配置Servlet的实例化顺序:

demo01.Demo01

n

n为正整数:在服务器启动的时候实例化该Servlet,

n为负整数:在第一次请求的时候实例化该Servlet(默认)。加载顺序:越大越先加载。

[3]配置初始化参数

name

wangwu

[4]配置ServletContext

charset

utf-8

[5]配置Session有效时间

60

6. doget()和dopost()向servlet发送请求的区别

表单可以使用get和post请求,其余控件如超链接都是使用get请求。

post:随同请求传参。安全高,速度慢。

get:随同url地址传参,只能发送字符串,最多1024字节。安全差,速度快。

7.servlet的类和接口

Servlet API包含于两个包中,即javax.servlet和javax.servlet.http。

Servlet是实现javax.servlet.Servlet接口的对象。

大多数Servlet通过从HttpServlet或GenericServlet类进行扩展来实现。

HttpServlet类:实现Http协议的servlet,用于浏览器。

GenericServlet类:实现与协议无关的servlet,用于AWT或Swing。

7.1javax.servlet包:

(1)Servlet接口:

[1]Servlet的生命周期相关方法

Servlet的生命周期:

①客户端发送请求到Servlet容器

②Servlet容器解析请求,即从本地文件系统、远程文件系统或者其他的网络服务中通过类加载器加载Servlet类

③创建Servlet实例

④调用Servlet接口的init()方法,初始化Servlet实例

⑤调用Servlet接口的service()方法,根据请求类型调用对应请求处理方法。

⑥输出响应信息

⑦返回响应

⑧调用Servlet接口的destroy()方法,销毁该servlet实例。

[2]获取Servlet相关信息

getServletConfig();//返回ServletConfig 对象

(2)ServletConfig接口:servlet 配置对象

getServletConfig();//返回此servlet 的ServletConfig 对象。

servlet容器使用的servlet 配置对象,该对象在初始化期间将信息传递给servlet。

①getInitParameter(String name);

//返回包含指定初始化参数的值,如果参数不存在,则返回null。

②getServletName();//返回此servlet 实例的名称。

③getServletContext();//返回对调用者在其中执行操作的ServletContext 的引用

(3)ServletContext接口:ServletContext(服务器-公共空间)

[1]定义

服务器中存在的公共空间,所有浏览器都可以访问ServletContext的里的数据。ServletContext中的属性的生命周期从创建开始,到服务器关闭而结束。

[2]应用实例

网站计数器

网站在线用户的显示

简单的聊天系统

[3]使用方法

getServletContext();//得到ServletContext();

①参数的设置、获取和移除

setAttribute(String name,object obj);//向ServletContext 中存放属性key-value。getAttribute(String name); //获取属性的值(Object类型)。getAttributeNames(); //获取ServletContext 中所有的属性名(Enumeration)。removeAttribute(String name); //删除指定的属性。

getInitParameter("charset"); //获取初始化参数

②获取服务器根目录相关信息

getContextPath(); //获取本项目在服务器中的路径

getRealPath("/index.jsp"); //获取指定文件在服务器中的绝对路径。getMimeType("/a.txt"); //获取指定文件的类型。

InputStream in=context.getResourceAsStream("/a.txt");//获取根目录下文件的输入流Setset=context.getResourcePaths("/A");//获取根目录下文件夹所有文件的路径

③资源控制

RequestDispatchergetRequestDispatcher(String path);//url只能使用绝对路径getResourceAsStream(String path);//以InputStream对象的形式返回位于指定路径上的资源。

[4]配置ServletContext

charset

utf-8

(4)ServletRequest接口:

①参数的设置、获取和移除

setAttribute(String name, Object o)

getAttribute(String name)

removeAttribute(String name);

getParameter(String name)

getParameterMap() //返回此请求的参数键值对。

getParameterNames() //返回包含所有参数名称( String 对象类型)的Enumeration。String[] getParameterValues(String name)

getAttribute()返回request范围内存在的对象,

getParameter()是获取http提交过来的数据(字符串)。

②设置请求中的信息

req.setCharacterEncoding(); //重写此请求正文中使用的字符编码。

③资源控制

req.getRequestDispatcher(url).forward(request.response);

//将请求(forward(request.response))转发到getRequestDispatcher(url)方法中参数定义的页面或者链接。url可以使用相对路径

(5)ServletResponse接口:

①设置响应中的信息

resp.setContentType("text/html;charset=UTF-8");

//指定HTTP 响应的编码,同时指定了浏览器显示的编码。

resp.setCharacterEncoding() //设置HTTP 响应的编码

②资源控制

PrintWriter out = resp.getWriter();//返回可将字符文本发送到客户端的PrintWriter 对象out.println("Hello!大家好!");

(6)Filter接口:过滤器

[1]定义和作用

请求先传给过滤器,再传给servlet。

过滤器可以对web服务器中的所有web资源进行管理:

如,对Jsp, Servlet, 静态图片文件或静态html 文件等进行拦截

如,实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能。

[2]使用方法

①编写java类实现Filter接口,并实现其init()、doFilter()、destroy()方法。

②在doFilter(ServletRequest request, ServletResponse response, FilterChain chain)方法中可实现以下功能:

1.。在让目标资源执行之前,可以对request\response作预处理,再让目标资源执行request.setCharacterEncoding("UTF-8");

response.setCharacterEncoding("UTF-8");

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

2.。访问权限控制

有权限访问:chain.doFilter(request, response);

无权限访问则跳转:

HttpServletResponse resp=(HttpServletResponse) response;

resp.sendRedirect(“index.jsp”);

3.。在目标资源执行之后,可以捕获目标资源的执行结果,从而实现一些特殊的功能

[3]配置Filter

①注册Filter②映射Filter

url-pattern设置filter 所拦截的请求路径:

/*:过滤所有请求

/servlet/*:过滤向/servlet目录下所有页面发送的请求,其他地方的请求无效不能访问。*.jsp:过滤向后缀名为jsp页面发送的请求,向向后缀名为其他的页面的请求不能访问。*.do:向servlet的映射加上后缀.do,然后在过滤器映射中过滤

例:

Servlet09

/servlet09.do

*.do

[4]Filter链

在一个web应用中,可以开发编写多个Filter,这些Filter组合起来称之为一个Filter链。当第一个Filter的doFilter方法被调用时,web服务器会创建一个代表Filter链的FilterChain 对象传递给该方法。

在doFilter方法中,开发人员如果调用了FilterChain对象的doFilter方法,则web服务器会检查FilterChain对象中是否还有filter,如果有,则调用第2个filter,如果没有,则调用目标资源。

web服务器根据Filter在web.xml文件中的注册顺序,决定先调用哪个Filter.

(7)ServletContextListener接口:监听器

(1)定义

监听器是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法立即被执行。

这里监听器能监听application(ServletContext)、session、request对象。

作用:可设置本项目在服务器中的路径的初始变量。

(2)监听器类型

request:ServletRequestListener和ServletRequestAttributeListener

session:HttpSessionRequestListener和HttpSessionAttributeListener

servletContext:servletContextListener和servletContext AttributeListener

前者监听对象的创建、添加和销毁;后者监听属性的设置和移除。

(3)使用方法

[1]创建监听类

public class MyListener01 implements ServletContextListener{ @Override

public void contextInitialized(ServletContextEvent arg0) {

ServletContext context = arg0.getServletContext();

String path = context.getContextPath();

context.setAttribute("path", path);

}

@Override

public void contextDestroyed(ServletContextEvent arg0) { }

}

public class MyListener02 implements ServletContextAttributeListener{ @Override

public void attributeAdded(ServletContextAttributeEvent arg0) { } @Override

public void attributeRemoved(ServletContextAttributeEvent arg0) { } @Override

public void attributeReplaced(ServletContextAttributeEvent arg0) { } }

[2]在web.xml文件中注册监听器

listener.MyListener01

7.2javax.servlet.http包:实现javax.servlet

(1) HttpSession接口:session(服务器-浏览器空间)

HttpSession接口提供了存储和返回标准会话属性的方法。

标准会话属性如会话标识符、应用数据等,都以“名字-值”对的形式保存在服务器端。

[1]定义和作用

1.。定义:

当用户打开浏览器,访问某个网站时,服务器就会在服务器的内存为该浏览器分配一个空间,该空间被这个浏览器独占。这个空间就是Session空间,该空间中的数据默认呆滞时间为30分钟。

Session机制:

2.。session应用:

①网上商城中的购物车。

②保存登录的用户信息。

③将某些数据放入到session中,供同一用户的各个页面使用。

④防止用户非法登录到某个页面。

3.。Session机制

当程序需要为某个客户端的请求创建一个session的时候,服务器首先检查这个客户端的请求里是否已包含了一个session标识- 称为session id,

如果已包含一个session id则说明以前已经为此客户端创建过session,服务器就按照session id把这个session检索出来使用(如果检索不到,可能会新建一个),

如果客户端请求不包含session id,则为此客户端创建一个session并且生成一个与此session相关联的session id,session id的值应该是一个既不会重复,又不容易被找到规律以仿造的字符串,这个session id将被在本次响应中返回给客户端保存。

[2]使用方法

①得到session

HttpSession hs=request.getSession(true);

②添加、获取和移除属性

hs.setAttribute(String name,Object val);

String name=hs.getAttribute(Stirng name);

hs.removeAttribute(String name);

③设置和获取Session信息

session.setMaxInactiveInterval(36);//设置Session访问服务器端的呆滞时间为36秒getMethod();//返回用于发出此请求的HTTP 方法的名称,例如GET、POST 或PUT getRequestedSessionId() 返回客户端指定的会话ID。

(2)HttpServletRequest接口

HttpSession getSession();//返回与这个请求关联的当前的有效的session。

String getMethod();//返回这个请求使用的HTTP方法(例如:GET、POST、PUT)

(3)HttpServletResponse接口

sendError(int sc, String msg) //使用指定状态将错误响应发送到客户端resp.sendRedirct("url?key1=value1&key2=value2")

//重定向有frame的jsp文件或Servlet页面,参数只能是字符串,不能是对象。URL重写:用来实现用户在不同页面跳转时sessionID的唯一性。

String str=response.encodeRedirectURL("hope.jsp");

Resp.redirect(Response().encodeRedirectURL(url ))

(4)HttpServlet类

doGet(HttpServletRequest req, HttpServletResponse resp)

//由服务器调用(通过service 方法),以允许servlet 处理GET 请求。

doPost(HttpServletRequest req, HttpServletResponse resp)

//由服务器调用(通过service 方法),以允许servlet 处理POST 请求。

(5)Cookie类

[1]定义

Cookie就像一张表,分两列,一个是名字(key),一个是值(value),数据类型都是String 类型。

Cookie是由服务器端生成,发送给浏览器,由浏览器保存,下次请求同一网站时就发送该Cookie给服务器(前提是浏览器设置为启用cookie)。

[2]cookie的用途

保留用户信息以便简化登录手续

在同一家网站的不同页面中选择不同的商品到购物车,由cookie保存

[3]cookie的使用

①创建一个cookie(在服务器端创建)

Cookie c=new Cookie(String name,String value);

②如何将一个Cookie添加到客户端

response.addCookie(c);

③如何读取cookie(从客户端读到服务器)

request.getCookie();

④如何设置cookie存在时间

c.setMaxAge(秒);

[4] cookie的生命周期

1.。设置Cookie对象的有效时间:

例如:Cookie c = new Cookie("username","john");

c.setMaxAge(60);//60秒的意思

c.setMaxAge(60*60);//一小时

c.setMaxAge(365*24*60*60);//一年

cookie.setmaxage设置为0时,会马上在浏览器上删除指定的cookie

cookie.setmaxage设置为-1时,代表关闭当前浏览器即失效。

设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie依然有效直到超过设定的过期时间。

存储在硬盘上的cookie可以在不同的浏览器进程间共享,比如两个IE窗口。

2.。不设置过期时间

则表示这个cookie生命周期为浏览器会话期间,只要关闭浏览器窗口,cookie就消失了。这种生命期为浏览会话期的cookie被称为会话cookie。会话cookie一般不保存在硬盘上而是保存在内存里。

第三章常用技术归纳

1.参数传递归纳:

①超链接:

②表单隐藏域:

③重定向

resp.sendRedirct("url?key1=value1&key2=value2")

2.在Servlet中操作数据库

向WebRoot/WEB-INF/lib导入数据库连接包,然后在doget()或dopost()方法中连接数据库3.分页显示技术

int pageSize:每页显示多少条记录是指定的

int pageNow:希望显示第几页是用户选择的

int pageCount:一共有多少页是计算出来的

int rowCount:一共有多少条记录是从表中查询得到的

4.数据库连接池技术

(1)定义

当程序中需要建立数据库连接时,只须从内存中取一个来用而不用新建。同样,使用完毕后,只需放回内存即可。这就是数据库连接池。

可以通过设置连接池的参数来控制连接池中的连接数、每个连接的最大使用次数等(2)创建连接池

package com.bonny.utils;

import java.sql.*;

import java.util.LinkedList;

import java.util.Properties;

public class JdbcUtilsPool {

private static Properties prop = null;

private static String driver = null;

private static String url = null;

private static String user = null;

private static String password = null;

private static LinkedList pool = new LinkedList<>();//①创建连接池集合static{

try {

prop = new Properties();

prop.load(JdbcUtilsPool.class.getResourceAsStream("conn.properties"));

driver = prop.getProperty("driver");

url = prop.getProperty("url");

user = prop.getProperty("user");

password = prop.getProperty("password");

Class.forName(driver);

initPool(); //②调用连接池初始化方法

} catch (Exception e) {

e.printStackTrace();

}

}

//③初始化连接池方法,创建指定数量的数据库连接对象

public static void initPool() throws SQLException{

for (int i = 0; i < 20; i++) {

pool.add(DriverManager.getConnection(url, user, password));

}

}

//④创建从连接池中集合中探出一个连接对象的方法

public static Connection getConnection(){

Connection con = null;

if(pool.size()>0){

con = pool.pop();

}else{

System.out.println("连接已用完,请等待");

}

return con;

}

public static void close(ResultSet res,Statement stmt,Connection con){ if(null!=res){

try {

res.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

if(null!=stmt){

try {

stmt.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

Servlet与JSP核心编程读书笔记

第3章servlet 基础 1.servlet 的生命周期。 a)init方法:首次创建servlet时,它的init方法会得到调用,因此,init是放置一次 性设置代码的地方。 i.可以使用此方法进行常规初始化,用来创建或载入在Servlet生命期内用到的 一些数据,或者执行某些一次性的计算。 ii.由初始化参数控制的初始化。 要理解init参数的动机,您需要了解什么样的人可能希望对Servlet的行为方 式进行定制。其中包括:开发人员、最终用户、部署人员。 开发人员通过改变代码改变Servlet的行为。 最终用户通过向HTML表单提供数据改变Servlet的行为。 部署人员为了能够在不修改Servlet的源代码的情况下,就可以将Servlet在机 器间移动,以及改变特定的参数(例如,数据库的地址,连接共享大小,或者 数据文件的位置)。init参数的目的就是为了提供这项能力。 b)service方法:在init之后,针对每个用户请求,都会创建一个线程,该线程调用前 面创建的实例的service方法。service方法检查HTTP请求的类型(GET,POST, PUT,DELETE等)并相应地调用doGet,doPost,doPut,doDelete等方法。 c)doGet,doPost和doXxx方法 GET请求起因于正常的URL请求,或没有指定METHOD的HTML表单。POST 请求起因于特别将POST列为METHOD的HTML表单。你可以覆盖doGet和/或 doPost方法来处理。 DELETE 请求由doDelete处理,PUT 由doPut方法处理,OPTIONS 由doOptions处理,TRACE 由doTrace方法处理。OPTIONS和TRACE的请求在 Servlet中是自动支持的。 doHead以处理HEAD请求(HEAD请求规定,服务器应该只返回正常的HTTP 头,不含与之相关联的文档)。为了能够更快地生成对HEAD请求的响应(例如 来自定制客户的请求,只需要HTTP报头,不需构建实际的文档输出),会实现 doHead方法。 2.SingleThreadModel接口 a)通过让Servlet实现这个接口,系统会保证不会有多个请求线程同时访问该servlet 的单个实例。大多数和情况下,系统将所有的请求排队,一次只将一个请求转给 单个servlet实例。 b)此接口已经过时,如果要同步最好使用synchronized关键字。 第4章客户请求的处理:表单数据 1.表单数据的读取。 a)单个值的读取:getParameter(表单项名称),表单项名称大小写敏感。如果表单项 存在但没有相应的值,返回空的String;如果没有这样的表单项,则返回null。 b)多个值的读取:getParameterValues(表单项名称),如果同一表单项名称在表单数 据中多次出现,则应该调用getParameterValues(返回字符串的数组)。对于不存在

jsp+servlet实例

jsp+servlet实例 开发环境myeclipse+tomcat6 1、先创建web project,项目名为RegisterSystem, 2、在WebRoot 目录下创建login.jsp文件,只需修改body中的内容,如下所示: username:
password:
3、在scr目录下的com.ht.servlet编写AcountBean.java文件,代码如下:package com.ht.servlet; public class AccountBean { private String username = ""; private String password = ""; public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getUsername() { return username; } public void setUsername(String username) { https://www.doczj.com/doc/35670312.html,ername = username; } } 4、在scr目录下的com.ht.servlet编写servlet类CheckAccount.java文件,代码如下: package com.ht.servlet; import java.io.IOException;

springMVC 个人学习笔记

第一、二课 所需jar包,本次使用版本是spring3.2.3 Ps:spring的文件用上面的基本够了,但是整个过程可能需要很多的commons 软件,如fileupload,io,lang包 SpringMVC demo案例 1、加入相关jar包 2、web.xml配置 springMVC org.springframework.web.servlet.DispatcherServlet 1 springMVC /这里一定要写成这样,如果写成 /* 输入地址总是No mapping found for HTTP request with URI Ps:springMVC 也有个默认的xml配置文件,类似struts2的struts.xml 该文件可以指定,即上面紫色注释掉部分。 默认路径是/WEB-INF/springMVC-servlet.xml

3、springMVC-servlet.xml 4、编写controller 该controller类似struts2的action,编写的controller 要实现org.springframework.web.servlet.mvc.Controller接口 第三课 springMVC的传值 通过modelandview 传值 1、

Cookie笔记

1 课程回顾 Servlet编程 1)Servlet生命周期(重点) 构造方法:创建servlet对象。默认情况下,第一次访问servlet对象时。只调用1次。 init方法(有参):创建完servlet对象后调用。只调用1次。 注意:会调用无参的init方法。 service方法:servlet提供服务的方法。每次发出请求调用。 注意:request对象,response对象 destroy方法:tomcat服务器停止或web应用重新部署,servlet对象销毁,destroy方法被调用。 2)ServletConfig对象 获取servlet的初始化参数: getInitParameter("name "); getInitParameterNames(); 3)ServletContext对象 得到web应用路径: context.getContextPath(); request.getContextPath(); 等价于上面的代码 得到web应用参数: context.getInitParameter("name"); context.getInitParameterNames(); 域对象: context.setAttribute("name",Object): 保存数据 context.getAttribute("name") 得到数据 context.removeAttribue("name") 清除数据 转发 context.getRequestDispatcher("路径").forward(request,response); request.getRequestDispacher("路径").forward(request,response); 等价于上面的代码得到web应用中的资源文件 context.getRealPath("路径") context.getResourceAsStream("路径"); 今天的目标:会话管理 2. 会话管理入门 2.1 生活中会话 我:小张,你会跳小苹果码? 小张:会,怎么了? 我:公司年会上要表演节目,你教教我把 小张:没问题,一顿饭而已。 我:OK。 。。。。。。。。

韩顺平servlet笔记(个人总结版)

第一课 第二课tomcat 简单模拟

package com.my.first; import java.io.*; import https://www.doczj.com/doc/35670312.html,.*; publicclass Mytomcat { /** * @param args */ publicstaticvoid main(String[] args) throws Exception { ServerSocketss = new ServerSocket(9999); Socket s = ss.accept(); System.out.println("在9999上等待。。。"); OutputStreamos =s.getOutputStream(); BufferedReaderbr = new BufferedReader(new FileReader("f:\\hello.html")); String str=""; while((str = br.readLine())!=null){ os.write(str.getBytes()); } br.close(); os.close(); s.close(); // ss.close(); } } 在浏览器中输入 http://localhost:9999 就会出现“hello world” 第三课 启动tomcat 各种问题总结

第四课

第五课 虚拟目录 如在f盘存放着各种web应用,但是空间不够了,这是我在d盘弄个文件当做该web应用的文件。但是要在server.xml中指定一下。 步骤:1、在那个磁盘下建立“f:\web2”,并建立相关的资源文件 2、在server.xml中配置 ps: path中的“/web2”是什么,在地址中就输入什么。 http://localhost:8080/web2/hello2.html context 能配置的属性 path、docBase、reloadable(有改变就重启tomcat)、unpackWAR

JSP+Servlet+El+JSTL+Ajax学习笔记

JSP基础语法 一、 JSP基础语法 (5) 1. JSP注释 (5) (1) (5) (2) <% //注释 %> (5) (3) <%-- 注释 --%> (5) 2. JSP脚本代码 (5) (1) 定义全局变量、方法、类 (5) (2) 定义局部变量、或编写Java语句 (5) (3) 输出语句 (5) 3. page指令 (5) (1) page指令语法 (5) (2) page指令例子 (5) ● 设置MIME类型(contentType属性) (6) ● 设置编码(pageEncoding属性) (6) ● 错误页的设置(errorPage属性) (6) ● 导包操作(import属性) (6) 4. JSP动作指令 (6) (1) JSP的7个动作指令 (6) (2) 跳转指令(jsp:forward) (6) ● jsp:forward语法 (6) ● 例子 (6) (3) 参数传递指令(jsp:param) (6) ● jsp:param语法 (6) ● jsp:param指令的作用 (6) (4) 包含指令(jsp:include) (6) ● 静态包含(include不常用) (6) ● jsp:include语法 (6) ● 动态包含(较常用) (6) (5) jsp:plugin指令(不常用) (6) ● jsp:plugin语法 (6) ● jsp:plugin作用 (7) (6) jsp:useBean指令 (7) ● jsp:useBean语法 (7) ● jsp:useBean作用 (7) (7) jsp:setProperty指令 (7) ● jsp:setProperty语法 (7) ● jsp:setProperty作用 (7) (8) jsp:getProperty指令 (7) ● jsp:getProperty语法 (7) ● jsp:getProperty作用 (7) JSP内置对象 二、 JSP内置对象 (7) 1. JSP的9个内置对象 (7) 2. 四种属性范围 (8) (1) page范围 (8) (2) request范围 (8) (3) session范围 (8) (4) application范围 (8) (5) 四中属性范围的内置对象共有的方法 (8) 3. request对象 (8) (1) request对象的说明 (8) (2) request对象的主要方法 (8) ● 与request属性相关 (8) ● 与request参数相关 (8) ● 与request请求头相关 (8) ● 与request请求正文相关 (8) ● 其它 (8) (3) 表单提交方式 (8)

Struts1学习笔记总结

Struts1 (1) Struts1和Servlet的关系 (1) 创建第一个Struts1项目 (1) 例子1: (3) 总结重点:struts1的工作流程(基于MVC模式的) (7) 一.普通的Servlet的工作流程 (7) 二.Structs1的工作流程(和上面的对比记忆) (8) Struts标签 (9) Bean标签 (9) html标签 (10) logic标签(逻辑标记) (12) i18n(国际化) (13) Struts1 Struts1和Servlet的关系 Jsp+Servlet+Javabean ActionForm和VO的区别: 一样的内容,不一样的作用 ActionForm只接收前台表单传来的数据 VO是conga后台提取的数据向前台传递 创建第一个Struts1项目 新建一个web项目,选择1.4即可 右键----MyEclipse----Add Struts Capacity

---------------Struts控制文件的路径 TLD(标签) 1) 2):显示信息 3):逻辑标签 struts-config.xml

韩顺平Spring笔记

①spring是什么? struts 是 web 框架 (jsp/action/actionfrom) hibernate 是 orm框架,处于持久层. spring 是容器框架,用于配置bean,并维护bean之间关系的框架 ?spring中有一个非常概念: bean (是java中的任何一种对象javabean/service/action/数据源./dao, ioc(控制反转inverse of control) di( dependency injection 依赖注入) ?画一个框架图 快速入门 开发一个spring项目. 1.引入spring的开发包(最小配置该包把常用的jar都包括, 还要写日志包 2.创建spring的一个核心文件 , [hibernate有核心 struts核心文件 ], 该文件一般 放在src目录下,该文件中引入 xsd文件: 可以从给出的案例中拷贝一份. 3.配置bean

韩顺平 4.在中,我们怎么使用 到spring 的applicationContext对象(容器对象) ApplicationContext ac=new ClassPathXmlApplicationContext(""); UserService us=(UserService) ("userService"); (); 5.细节讨论? 传统的方法和使用spring的方法 5.1使用spring ,没有new 对象,我们把创建对象的任务交给spring框架 5.2spring的运行原理图: 我们再看spring 对上面案例总结: spring实际上是一个容器框架,可以配置各种bean(action/service/domain/dao),并且可以维护bean与bean的关系,当我们需要使用某个bean的时候,我们可以getBean(id),使用即可. ioc是什么? 答:ioc(inverse of controll ) 控制反转: 所谓控制反转就是把创建对象(bean),和维护对象(bean)的关系的权利从程序中转移到spring的容器,而程序本身不再维护. DI是什么? 答: di(dependency injection) 依赖注入: 实际上di和ioc是同一个概念,spring设计者认为di更准确表示spring核心技术

j2ee笔记

J2EE学习笔记 注:框架可以用Word菜单中的“视图/文档结构图”看到 J2EE模式 Value Object(值对象) 用于把数据从某个对象/层传递到其他对象/层的任意Java对象。通常不包含任何业务方法。 也许设计有公共属性,或者提供可以获取属性值的get方法。 JSP 1.JSP的基础知识 __ _____ | directive (指令) | |-- scripting (脚本) JSP -------| |__ action (动作) | |_____Template data :除JSP语法外,JSP引擎不能解读的东西 1)在JSP中使用的directive(指令)主要有三个: a)page指令 b)include指令 c)taglib指令 在JSP的任何地方,以任何顺序,一个页面可以包含任意数量的page指令 2)Scripting(脚本)包括三种类型 a)<%!declaraction %> b)<% scriptlet %> c)<%= expression %> 3)action(动作) 标准的动作类型有: a) b) d)

e) f) g) h) 1.注释:<% -----jsp comment-------%> 2.<%@ page session = “true” import =”java.util.*” %> session可以不赋值,默认为true,如果session=”false”,则在JSP页面中,隐含的变量session就不能使用。 3.请求控制器结构(Request Controller) 也被称之为JSP Model 2 Architecture 这种途径涉及到使用一个Servlet或一个JSP作为一个应用程序或一组页面的入口点。 为创建可维护的JSP系统,Request Controller是最有用的方式之一。 不是JSP,而是Java类才是放置控制逻辑的正确的地方。 请求控制器的命名模式为: xxxController.jsp 请求控制器类的命名模式为: xxxRequestController 2.JSP中的JavaBean JSP三种bean的类型 1)页面bean 2)会话bean 3)应用bean 大多数的系统会使用一个会话bean来保持状态,而对每一个页面使用一个页面bean 来对复杂的数据进行表示。 页面bean是一个模型,而JSP是一个视图。 3.Custom tag bean是信息的携带者, 而tag更适用于处理信息。

阿里巴巴java笔试 准备笔记

1.Java语言中,字符串是对象类型,而字符是数据类型。 2.一旦使用了关键是strictfp来申明某个类、接口或者方法时,那么在这个关键字所声明 的范围内所有浮点运算都是精确的,符合IEEE-754规定的。如果一个类被声明为strictfp,那么该类中所有的方法都是strictfp。 3.String s1 = new String(“abc”) 该语句创建了两个对象。”abc”被创建与文字池中,s1在堆中被创建。 4.数组不能直接指定列数或者行数,应在创建对象时指定。Int iArray[][] = new int[3][4]。 5.请描述Java Servlet API中forward()与redirect()的区别? 答:前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址。 后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,前者更加高效,在前者可以满足需要时,尽量使用forward()方法,并且,这样也有助于隐藏实际的链接。在有些情况下,比如,需要跳转到一个其他服务器上的资源,则必须使用sendRedirect()方法。 6.JSP和Servlet有哪些相同点和不同点?它们之间的联系是什么? 答:JSP是Servlet技术的扩展,本质上是Servlet的简易方式,更强调应用的外表表达。 JSP编译后是”类Servlet”。Servlet和JSP最主要的不同点在于,Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离出来。而JSP的情况是Java和HTML 可以组合在一个扩展名为.jsp的文件。JSP侧重于视图,Servlet主要用于控制逻辑。 7.Servlet执行时一般实现哪几个方法? 答:public void init(ServletConfig config) Public ServletConfig getServletConfig() Pubic String getServletInfo() Public void service(ServletRequest request, ServletResponse response) Public void destroy() 8.请简介依赖注入机制。 答:所谓依赖注入,是指程序运行过程中,如果需要调用另一个对象协助,无须在代码中创建被调用者,而是依赖于外部的注入。Spring的依赖注入对调用者和被调用者几乎没有任何要求,完全支持对POJO之间的依赖关系的管理。依赖注入通常有两种:设值注入和构造注入。 9.Hibernate的优点是什么? 答:Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲地使用对象编程思维来操纵数据库。Hibernate 可以应用在任何使用JDBC的场合,既可以在Java的客户端使用,也可以在Servlet/Jsp 的Web应用中使用。最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据库持久化的任务。 10.Session和Cookie的区别和联系。 答:cookie机制采用的是在客户保持状态的方案,而session机制采用的是在服务器端保持状态的方案。

java笔记

Java: Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。 Java JDK 9学习笔记: 《Java JDK 9学习笔记》是作者多年来教学实践经验的总结,汇集了学员在学习Java 或认证考试时遇到的概念、操作、应用等问题及解决方案。 基本信息: 《Java JDK 9学习笔记》是作者多年来教学实践经验的总结,汇集了学员在学习Java 或认证考试时遇到的概念、操作、应用等问题及解决方案。《Java JDK 9学习笔记》针对Java SE 9 新功能全面改版,无论是章节架构或范例程序代码,都做了重新编写与全面翻新,并详细介绍了Java 9 的模块化,JVM、JRE、Java SE API、JDK 与IDE 之间的对照关系。必要时可从Java SE API 的源代码分析,了解各种语法在Java SE API 中如何应用。对于建议练习的范例提供了Lab 文档,以突出练习重点。此外,《Java JDK 9学习笔记》还将IDE 操作纳为教学内容之一,让读者能与实践相结合,轻松快速掌握Java 编程技巧。《Java JDK 9学习笔记》适合Java 的初、中级读者以及广大Java 应用开发人员阅读。 作者简介: 林信良(网名:良葛格),毕业于台湾大学电机工程学系。擅长

技术写作、翻译与教育培训。喜好研究程序语言、框架、社群,从中学习设计、典范及文化,并利用闲暇之余记录所学技术,涵盖C/C++、Java、Ruby/Rails、Python、JavaScript、Haskell、OpenSCAD 等领域。目前出版的著作有《JSP & Servlet学习笔记(第2版)》《Spring技术手册》《Java JDK 8 学习笔记》等,译作有《Ajax实战手册》《jQuery实战手册(第2版)》。

weblogic调优笔记

weblogic培训笔记(转载) 上一篇/ 下一篇 2009-05-21 16:29:55 / 个人分类:服务配置 查看( 97 ) / 评论( 0 ) / 评分( 0 / 0 ) weblogic Server内部结构和相关的配置 weblogic Server内部结构图: (一) 原理简单说明 服务器启动,就会绑定到相应的端口,并为一个端口分配一个线程以接受连接请求,一旦服务器接受到连接请求并建立好连接以后,监听线程将处理权交给套接字复用器,套接字复用器进行一定的处理,并会负责选择利用那个执行队列并将请求置入其中。当有一个请求进入执行队列,就会有一个空闲的执行县城从该队列里面取走并向调用者返回结果。 (二) 执行队列和执行线程的相关配置 执行线程数量有一定的限制,在服务器启动的时候,就已经形成了一个含有一定数量执行线程的池,执行线程可能跨servlet,ejb和jdbc等,由于执行线程仅当程序成功结束或者出现异常才能被释放继续处理其他请求,所以如果执行线程执行的不够快,而请求又多的情况下,就会造成执行队列的阻塞。 相关的配置信息有:

server菜单—〉configuration页---〉高级配置---〉Config Execute Queues中的配置项如下: 1、Queue Length队列长度,执行队列的长度 2、Queue Length Threshold Percent 一个百分数,当request的数量达到队列长度的这个比例的时候,weblogic会发出overflow的标志信息。 3、Thread Count 服务器初始创建的执行线程的数量 4、Thread Increase 如果weblogic发出overflow的标志信息,weblogic会尝试增加这个数量的执行线程,以解决处理矛盾。 5、Threads Maximum最大执行线程数 6、Threads Minimum最小执行线程数 7、Thread Priority线程优先级 另外server菜单—〉configuration页---〉tuning子页中还有一些相关的配置: 1、 Stuck Thread Max Time 黏联线程时间,超过这个时间没有返回的执行线程,系统将认为是黏联线程。 2、 Stuck Thread Timer Interval 系统检查黏联线程的时间间隔 如果weblogic认为某个队列中的所有的线程全部黏联的话,weblogic将会增加执行线程的数量。 注意:执行线程的数量一旦增加,目前weblogic不会去减少他,如果增加了一些线程以后再次出现overflow 的警告,weblogic会继续增加执行线程的数量,一直到达到上限为止。 (三) 套接字复用器的相关配置

韩顺平jsp学习笔记

韩顺平jsp学习笔记 jsp u j2ee核心13种技术: 程序员必须掌握的技术:java,servlet,jsp。 13种技术规范. u j2ee程序员修炼成精法门 u jsp 版本的用户管理系统:将servlet版本改为jsp版本,只使用jsp技术完成(modle1模式开发) 并且在后面可通过jsp版的用户管理系统的改写,非常自然过渡到mv设计模式,更进一步到mvc设计模式 开发工具:myeclipse u jsp概述: jsp是servlet技术的补充,访问jsp的过程:如果是第一次访问,jsp文件被服务器翻译成一个对应的java文件(servlet),然后,再被编译成.class文件并加载到内存中。如果是以后访问jsp,那就直接调用内存中的jsp实例,所以,第一次访问jsp慢,后面访问jsp的速度就会变快了。(hello.jsp来说明运行原理:tomcat下的work下有将jsp转换为servlet的代码) 1. 为什么出现:程序员在开发过程中,发现servlet做

界面非常不好,jsp对servlet的补充(对界面的补充,jsp界面好做) 2. jsp=html+java片段+jsp标签(语法)+javascript(css):综合 3. jsp功能的强大是因为可以与javabean结合使用(即:jsp作前台(界面),javabean作后台(逻辑层))。 4. Jsp是什么:1.jsp运行在服务器,2.jsp(java server page)3。Jsp基础是servlet(相当于对servlet的包装)4.jsp 是综合技术:一个公式:jsp=html+java代码+jsp标签 +javascript(css) 比较综合5.jsp无需配置,直接使用,如果你修改了jsp文件,不需要重新reload web应用6.jsp如何访问:http://ip:8088/web应用名.jsp路径u jsp的概述:元素 1. 指令元素 2. 脚本元素 3. 动作元素 u jsp与servlet的关系: 1. jsp与servlet是对应关系 2. jsp是以servlet为基础的 u 编写一个计算器的实例: 1. 表单提交处理的jsp页面为:<form action=”chuli.jsp”>

马士兵struts2学习笔记(详细版)

1、02_尚学堂马士兵_Struts2_Struts2_HelloWorld_2.avi 指定Tomcat的目录,指定JDK搭建开发环境(拷贝jar包,复制struts.xml 文件此文件不要放在WEB-INF下面,应该放到src下面),在web.xml文件中: struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAn dExecuteFilter struts2 /* 其中/* 不要写/*.do 或者 /*.action约定俗成用/* 2、04_尚学堂马士兵_Struts2_Struts2_HelloWorld_3.avi (1) action -->相应的处理类或页面 --> /Hello.jsp (2)struts.xml不自动提示的解决办法: window--perferences-XML catalog---add---key Type="URI" key="*.dtd" 3、09_尚学堂马士兵_Struts2_Struts2_HelloWorld_7_2.avi struts2的执行流程: 当用户在浏览器中敲入要访问的地址的时候,浏览器会将这个请求发送给

java基础学习心得

java基础学习心得 java基础 1.java程序是由1个或者n个class组成的程序 2.编写---javac进行编译------java进行执行 3.类名的命名:规范:第一个字母要大写第一字母必须是字母下划线美圆符号人民币符号// 4.不是第一个字母的话可以是数字 5.文件名和类名的关系如果class前面没有public 是可以不一样的但是如果有的话必须一样 6.两个byte short类型进行加减乘除的时候返回的结果是int类型 /* 需求:定义一个hello world小程序。 步骤: 1,通过class关键字定义一个类。将代码都编写到该类中。 2,为了保证该的独立运行。在类中定义个主函数。格式public static void main(string args) 3,保存成一个扩展名为java的文件。 4,在dos控制台中通过javac工具对java文件进行编译。 5,在通过java命令对生成的class文件进行执行。 */ class demo//定义一个类。 { //主函数。 public static void main(string args) { //输出语句。 system.out.println(); } } 6.字符串数据和任何数据使用+都是相连接,最终都会变成字符串。 system.out.println(+(5+5));// 转义字符:通过来转变后面字母或者符号的含义。 n:换行。 b:退格。相当于backspace。

r:按下回车键。window系统,回车符是由两个字符来表示rn. t:制表符。相当于tab键。 7.if else 结构简写格式:变量 = (条件表达式)?表达式1:表达式2; 三元运算符: 好处:可以简化if else代码。 弊端:因为是一个运算符,所以运算完必须要有一个结果。 class operatedemo { public static void main(string args) { int x= 7; //逻辑运算符用于连接boolean类型的表达式。 //x>3 & x第三篇:java学习心得笔记 j2ee学习笔记 注:框架可以用word菜单中的“视图/文档结构图” 看到 j2ee模式 value object(值对象)用于把数据从某个对象/层传递到其他对象/层的任意java对象。 通常不包含任何业务方法。 也许设计有公共属性,或者提供可以获取属性值的get方法。 jsp 1.jsp的基础知识 __ _____ |directive(指令) | |-- script(敬请期待好范文网更好文章:https://www.doczj.com/doc/35670312.html,)ing jsp -------| |__ action | |_____template data :除jsp语法外,jsp引擎不能解读的东西 1)在jsp中使用的directive(指令)主要有三个: a) page指令 b) include指令 c) taglib指令 在jsp的任何地方,以任何顺序,一个页面可以包含任意数量的page指令 2)scripting包括三种类型

JSP期末考试题-程序员笔记

JSP 期末考试题 程序员笔记精华 针对以下题目请选择正确的答案(每道题目有一个或多哥正确的答案)。每一道题目,所有答案都选对,则该题加分,所选答案错误或不能选出所有正确答案,则该题不得分。 1)在JSP中,要定义一个方法,需要用到以下()元素。(选择一项) a) <%= %> b) <% %> c) <%! %> d) <%@ %> 2)JSP页面经过编译之后,将创建一个()。(选择一项) a) applet b) servlet c) application d) exe文件 3)当JSP页面执行自定义标签,遇到结束标签时将调用()方法执行处理。(选择一项) a) doStartTag() b) doEndTag() c) doInitBody() d) doAfterBody() 4) 在J2EE中,test.jsp文件中有如下一行代码:(选择一项) 要使user对象中一直存在于对话中,直至其终止或被删除为止,下划线中应填入()。 a) page b) request c) session d) application 5) 在J2EE中,以下不是JSP隐式对象的是()。(选择一项) a) pageContext b) context c) application d) out 6) Servlet中,HttpServletResponse的()方法用来把一个Http请求重定向到另外的URL。(选择一项) a) sendURL() b) redirectURL() c) sendRedirect() d) redirectResponse() 7) 在JSP中,page指令的()属性用来引入需要的包或类。(选择一项) a) extends b) import c) languge d) contentType 8) 在Servlet过滤器的生命周期方法中,每当传递请求或响应时,web容器会调用()方法。(选择一项) a) init b) service c) doFilter d) destroy 9) 在JSP中,只有一行代码:<%=’A’+’B’%>,运行将输出()。(选择一项) a) A+B b) AB c) 131 d) 错误信息,因为表达式是错误的10)给定一个Servlet的代码片段如下: Public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{ ______ out.println(“hi kitty!”); out.close(); }

韩顺平struts笔记

! Struts视频笔记: Struts是一个开源的web框架,框架提高了程序的规范的同时也约束了程序员的自由 为什么会有struts: 因为我们队mvc理解的不同,可能造成不同公司写程序的时候,规范不统一,这样不利于程序的维护和扩展,所以我们有必要用一个统一的规范来开发项目(struts) Struts 的好处: 程序更加规范化,开发效率提高了,可读性增加了,程序的可维护性增加了 ^ 运行原理: 一个请求从浏览器发送给web服务器,,web服务器首先解析主机然后解析web应用的名称 在解析出资源名转发给总司令ActionServlet(该类由struts框架提供给我们的无需编写,只需配置)ActionServlet有一个文件,该文件配置了表单actionForm(军火库),还配置了action,以及他们之间的对应关系,当ActionServlet拿到命令后它会查询文件去填充数据,把用户的数据填充到表单里边,下个动作就是去调用指定的action(小队长),action去从表单中读取数据,调用某个model(士兵,如service)完成任务,完成任务把结果返回给ActionServlet总司令(返回一个执行的结果),-->总司令又去查询文件,决定跳转到哪个jsp页面,返回一个执行结果(形成静态html文件)直接返回给web服务器服务器再把静态页面以h ttp响应给浏览器 ,登录小项目过程步骤: 新建web工程导入struts包编写编写actionForm和action 配置编写和配置测试 中的中的scope指的是actionform的生命周期范围 struts中的scope默认是session @ 配置过滤器 public class MyFilter extends HttpServlet implements Filter { @Override public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException { ("gb2312"); ("gb2312"); ~ (arg0, arg1); } 配置 MyFilter MyFilter/* 上面这次比较浪费资源每次都要去实例化但是下面这种过滤器不太彻底,往数据库里插入数据时还是会经常出现乱码

相关主题
文本预览
相关文档 最新文档