精华内容
下载资源
问答
  • webaccess培训教程

    2010-03-03 17:17:09
    培训教程,研华webaccess培训ppt
  • WebADI开发培训教程

    2014-05-24 16:58:19
    Oracle EBS WebADI开发培训教程WEBADI开发入门教程
  • 深圳Web培训web应用安全培训教程之react    react是一个用于构建用户界面的JavaScript库文件,react可以使构建交互UI的过程变得简单。对于你的应用里面的每个状态视图,当数据变化的时候,react都会及时并且...

    深圳Web培训:web应用安全培训教程之react
     
      react是一个用于构建用户界面的JavaScript库文件,react可以使构建交互UI的过程变得简单。对于你的应用里面的每个状态视图,当数据变化的时候,react都会及时并且正确有效率地进行对其更新,这种陈述式视图,将使你的代码更有可控性,并且更加易于调试。很多web应用安全培训课程中都会涉及react,今天千锋老师就来给大家详细的讲述一下react的知识。

    react有六大特点:声明式设计——采用声明范式,可以轻松描述应用;高效——React通过对DOM的模拟,最大限度地减少与DOM的交互;灵活——React可以与已知的库或框架很好地配合;JSX——JSX 是JavaScript语法的扩展;组件——通过React构建组件,使得代码更加容易得到复用;单向响应的数据流——React 实现了单向响应的数据流,从而减少了重复代码。

    由于react是一个JavaScript库,所以掌握它的前提就是:你已经有了相关JavaScript的基础理解能力,你了解HTML和CSS。而这些也是一个专业的web应用安全培训机构在设置课程时需要注意的一点。

    在这里插入图片描述

    接下来我们来了解react的生命周期、数据流及事件。

    在组件的整个生命周期中,随着该组件的props或者state发生改变,它的DOM表现也将有相应的变化,一个组件就是一个状态机:对于特定的输入,它总会返回一致的输出。 React为每个组件提供了生命周期钩子函数去响应不同的时刻,组件的生命周期分为三个部分:(1)实例化;(2)存在期;(3)销毁&清理期。

    在react中,数据流向是单向的——从父节点传递到子节点,因而组件是简单且易于把握的,他们只需从父节点获取props渲染即可。如果顶层组件的某个prop改变了,react会递归地向下遍历整棵组建树,重新渲染所有使用这个属性的组件。react组件内部还具有自己的状态,这些状态只能在组件内修改。

    react通过将时间处理器绑定到组件上来处理事件。在事件被触发的同时,更新组件的内部状态。组件内部状态的更新会触发组件重绘。因此,如果视图层想要渲染出时间触发后的结果,它所需要做的就是在渲染函数中读取组件的内部状态。

    如果你想了解更多关于react的知识,你可以关注千锋录制的HTML5视频教程。你还可以直接报名千锋web前端培训两周免费试听课,与大牛讲师面对面交流学习,让你快速入门web前端,轻松实现高薪梦想!

    展开全文
  • web应用安全培训教程

    2012-06-11 11:25:00
    web应用安全培训教程,以实际应用来说明web应用安全的重要性,并介绍了web应用安全中的主要安全漏洞及危害,该文档可作为公司内部培训或者安全领域初级培训之用。最后还提供一些相关习题,提供培训使用。该文档是...
  • web开发安全技术培训教程
  • 米斯特WEB安全培训全套视频教程 网络攻防、渗透、提权等 附工具 百度云资源
  • 比较全面的一个关于Web开发安全技术的指导培训教程,分享出来给喜欢学习的小伙伴们
  • Web应用安全培训PPT教程,可以作为web安全测试的入门课程
  • jsp网站编程培训教程(java web) 软件开发培训班的JSP培训
  • <<web_Intelligence培训教程>>教你如何利用bo工具制作出你想要的报表
  • web应用安全培训教程之react    react是一个用于构建用户界面的JavaScript库文件,react可以使构建交互UI的过程变得简单。对于你的应用里面的每个状态视图,当数据变化的时候,react都...

    web应用安全培训教程之react
     
      react是一个用于构建用户界面的JavaScript库文件,react可以使构建交互UI的过程变得简单。对于你的应用里面的每个状态视图,当数据变化的时候,react都会及时并且正确有效率地进行对其更新,这种陈述式视图,将使你的代码更有可控性,并且更加易于调试。很多web应用安全培训课程中都会涉及react,今天千锋老师就来给大家详细的讲述一下react的知识。

    react有六大特点:声明式设计——采用声明范式,可以轻松描述应用;高效——React通过对DOM的模拟,最大限度地减少与DOM的交互;灵活——React可以与已知的库或框架很好地配合;JSX——JSX 是JavaScript语法的扩展;组件——通过React构建组件,使得代码更加容易得到复用;单向响应的数据流——React 实现了单向响应的数据流,从而减少了重复代码。

    由于react是一个JavaScript库,所以掌握它的前提就是:你已经有了相关JavaScript的基础理解能力,你了解HTML和CSS。而这些也是一个专业的web应用安全培训机构在设置课程时需要注意的一点。

    在这里插入图片描述

    接下来我们来了解react的生命周期、数据流及事件。

    在组件的整个生命周期中,随着该组件的props或者state发生改变,它的DOM表现也将有相应的变化,一个组件就是一个状态机:对于特定的输入,它总会返回一致的输出。 React为每个组件提供了生命周期钩子函数去响应不同的时刻,组件的生命周期分为三个部分:(1)实例化;(2)存在期;(3)销毁&清理期。

    在react中,数据流向是单向的——从父节点传递到子节点,因而组件是简单且易于把握的,他们只需从父节点获取props渲染即可。如果顶层组件的某个prop改变了,react会递归地向下遍历整棵组建树,重新渲染所有使用这个属性的组件。react组件内部还具有自己的状态,这些状态只能在组件内修改。

    react通过将时间处理器绑定到组件上来处理事件。在事件被触发的同时,更新组件的内部状态。组件内部状态的更新会触发组件重绘。因此,如果视图层想要渲染出时间触发后的结果,它所需要做的就是在渲染函数中读取组件的内部状态。

    如果你想了解更多关于react的知识,你可以关注千锋录制的HTML5视频教程。你还可以直接报名千锋web前端培训两周免费试听课,与大牛讲师面对面交流学习,让你快速入门web前端,轻松实现高薪梦想!


    来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69942977/viewspace-2652577/,如需转载,请注明出处,否则将追究法律责任。

    转载于:http://blog.itpub.net/69942977/viewspace-2652577/

    展开全文
  • 2018传智播客黑马Web前端视频教程开发培训教程就业全栈开发视频(某宝卖10元)。 2018传智播客黑马Web前端视频教程开发培训教程就业全栈开发视频 javascript node.js vue css web
  • 好程序员web前端培训分享CSS定位的教程,CSS定位 (Positioning) 属性允许你对元素进行定位。  CSS定位和浮动  CSS为定位和浮动提供了一些属性,利用这些属性,可以建立列式布局,将布局的一部分与另一部分重叠,还...

    好程序员web前端培训分享CSS定位的教程,CSS定位 (Positioning) 属性允许你对元素进行定位。
      CSS定位和浮动
      CSS为定位和浮动提供了一些属性,利用这些属性,可以建立列式布局,将布局的一部分与另一部分重叠,还可以完成多年来通常需要使用多个表格才能完成的任务。
      定位的基本思想很简单,它允许你定义元素框相对于其正常位置应该出现的位置,或者相对于父元素、另一个元素甚至浏览器窗口本身的位置。显然,这个功能非常强大,也很让人吃惊。要知道,用户代理对CSS2中定位的支持远胜于对其它方面的支持,对此不应感到奇怪。
      另一方面,CSS1中首次提出了浮动,它以Netscape在Web发展初期增加的一个功能为基础。浮动不完全是定位,不过,它当然也不是正常流布局。我们会在后面的章节中明确浮动的含义。
      一切皆为框
      div、h1或p元素常常被称为块级元素。这意味着这些元素显示为一块内容,即“块框”。与之相反,span和strong等元素称为“行内元素”,这是因为它们的内容显示在行中,即“行内框”。
      您可以使用display属性改变生成的框的类型。这意味着,通过将display属性设置为 block,可以让行内元素(比如 元素)表现得像块级元素一样。还可以通过把display设置为one,让生成的元素根本没有框。这样的话,该框及其所有内容就不再显示,不占用文档中的空间。
      但是在一种情况下,即使没有进行显式定义,也会创建块级元素。这种情况发生在把一些文本添加到一个块级元素(比如 div)的开头。即使没有把这些文本定义为段落,它也会被当作段落对待:
      


      some text
      

    Some more text.


      

      在这种情况下,这个框称为无名块框,因为它不与专门定义的元素相关联。
      块级元素的文本行也会发生类似的情况。假设有一个包含三行文本的段落。每行文本形成一个无名框。无法直接对无名块或行框应用样式,因为没有可以应用样式的地方(注意,行框和行内框是两个概念)。但是,这有助于理解在屏幕上看到的所有东西都形成某种框。
      CSS定位机制
      CSS有三种基本的定位机制:普通流、浮动和绝对定位。
      除非专门指定,否则所有框都在普通流中定位。也就是说,普通流中的元素的位置由元素在 (X)HTML 中的位置决定。
      CSS定位属性
      CSS定位属性允许你对元素进行定位。
      块级框从上到下一个接一个地排列,框之间的垂直距离是由框的垂直外边距计算出来。
      行内框在一行中水平布置。可以使用水平内边距、边框和外边距调整它们的间距。但是,垂直内边距、边框和外边距不影响行内框的高度。由一行形成的水平框称为行框(Line Box),行框的高度总是足以容纳它包含的所有行内框。不过,设置行高可以增加这个框的高度。
      在下面的章节,我们会为您详细讲解相对定位、绝对定位和浮动。
      CSS position属性
      通过使用position属性,我们可以选择4种不同类型的定位,这会影响元素框生成的方式。
      position属性值的含义:
      static
      元素框正常生成。块级元素生成一个矩形框,作为文档流的一部分,行内元素则会创建一个或多个行框,置于其父元素中。
      relative
      元素框偏移某个距离。元素仍保持其未定位前的形状,它原本所占的空间仍保留。
      absolute
      元素框从文档流完全删除,并相对于其包含块定位。包含块可能是文档中的另一个元素或者是初始包含块。元素原先在正常文档流中所占的空间会关闭,就好像元素原来不存在一样。元素定位后生成一个块级框,而不论原来它在正常流中生成何种类型的框。
      fixed
      元素框的表现类似于将position设置为absolute,不过其包含块是视窗本身。
      提示:相对定位实际上被看作普通流定位模型的一部分,因为元素的位置相对于它在普通流中的位置。
      CSS定位属性
      CSS定位属性允许你对元素进行定位。

    展开全文
  • 2017黑马安卓74期培训视频web基础教程完整版的网盘连接,有需要的同学可以下载
  • Web开发培训教程

    2008-12-21 22:37:58
    客户通过浏览器可以发送给Web服务器的请求一共有7种 Post,Get,Put,Delete,Options,Head,Trace 常用就是Post和Get   web.xml里面可以配置init-para request对象可以获得服务器的运行参数 request对象可以...

    1、<meta refresh=5,url='xxx.xxx.xxx'/>

    可以设置页面的自动跳转

     

    2、表单中的图片提交按钮

    <input type='image' src='aaa.gif' alt='xxx' name='submit2'/>

     

    3、<embeded>插入多媒体

    插入其他的需要加入type属性来指明播放器插件

    如:type='auto/x-pn-realaudio-plugin'

     

    4、相对长度单位

     em:元素的字体高度

     ex: 字母x的高度

     px: 像素

     %: 百分比

     

     5、DIV标记

     如果不使用CSS,和段落标记相同

    CSS+DIV 实现结构化的页面布局

    传统方式使用表格来控制

     

    相关组件
    Commons DBCP
    Commons DbUtils
    Commons Email
    Commons FileUpload
    Log4J
    FCKEditor

     

    • Eclipse的架构
      JDT
      PDE
      MyEclipse
      JBoss IDE  

    Java --> build path

    Java - Compiler

    show line number

     

     

      6、TOMCAT的配置

    conf/server.xml

        <Connector port="8080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443"
                   URIEncoding="UTF-8"/>

     解决get方法传递中文参数的乱码问题。

     

     conf/context.xml

     <Context reloadable="true">

     自动加载web应用,用于开发阶段。

     

    conf/tomcat-users.xml

    <?xml version='1.0' encoding='utf-8'?>
    <tomcat-users>
      <role rolename="manager"/>
      <role rolename="admin"/>
      <user username="mwang" password="mwang" roles="admin,manager"/>
    </tomcat-users>

     

      7、编写Java Web服务器

    直接使用Socket编程
    使用Socket+多线程
    使用NIO+多线程
    使用JDK自带或者第三方的线程池技术对线程进行管理,提高多线程的效率
    使用Java Socket的开发框架,例如MINA和Cindy

    NIO的非阻塞的socket集合Java的多线程。

    使用JDK或第三方线程池技术对线程进行管理,提高多线程的执行效率

    使用开源的JavaSocket框架,MINA和Cindy框架

     

      8、Servlet编程

    Servlet 结构
    Applet
    Servlet
    MIDlet

     

    javax.servlet.Servlet
    javax.servlet.GenericServlet
    javax.servlet.http.HttpServlet

     

     

    可以获取初始化参数
    可以获取服务器信息
    可以获取头信息的枚举,然后取枚举的值

     

    客户通过浏览器可以发送给Web服务器的请求一共有7种
    Post,Get,Put,Delete,Options,Head,Trace

    常用就是Post和Get

     

    web.xml里面可以配置init-para

    request对象可以获得服务器的运行参数

    request对象可以获取头信息  getHeaderNames()   getHead(String name)

     

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

      out.print("中文")

     

     request.getContextPath()  获取servlet的名字 /hello

     

      9、form 表单

     request.setCharacterEncoding("utf-8");

     

     request.getParameterValues(name);  取多个值的数值

    request.getParameterMap()

     

     写一个特殊字符的转义filter方法, 防止内容以html形式输出

     

    public String htmlFilter(String strValue) {

         strValue = strValue.replaceAll("&", "&amp;");

         strValue = strValue.replaceAll("<", "&lt;");

         strValue = strValue.replaceAll("\n", "<br>");

    }

     

    利用javascript进行客户端验证

     

    10、JSValidation验证框架

    http://cosoft.org.cn/projects/jsvalidation

     见附件

    (1) validation-config.xml

    两种方式:一种alert,一种div

     

    (2) validation-framework.js

     

     21 行 var ValidationRoot = "/hello/js";

     

    在html文件中引入js,在form里面增加οnsubmit='return doValidate(this)'

     

    message乱码,可以用UltraEdit保存转码成utf-8

     



     

     

     

    11、FCKeditor实现word编辑功能

    http://www.fckeditor.net/download

    引入fckeditor.js

     

    可以精简fckeditor

     

    TinyMCE

    http://tinymce.moxiecode.com

     见附件 

     

    12、JDBC

     ojdbc5.jar  JDK1.5

     ojdbc6.jar  JDK1.6

     

    13、Tomcat配置连接池

    修改context.xml

      见附件

     

     maxActive是最大激活连接数,这里取值20个,表示同时最多有20个与数据库的连接。

    maxIdle是最大空闲连接数,这里取值10个,表示即使没有连接请求时,依然可以保持10空闲的连接,而不被清除,随时处于待命状态。

    maxWait是最大等待秒钟数,这里取值-1,表示无限等待,直到超时为止,也可以取值9000,即表示9秒后超时。

     



      

        Context context = new InitialContext();
        DataSource ds = (DataSource) context.lookup("java:/comp/env/jdbc/myds");
        conn = ds.getConnection();
     

     

     14、Commons DbUtils

     

    public class MapListExample {
    	public static void main(String[] args) {
    		Connection conn = null;
    		String url = "jdbc:oracle:thin:@192.168.1.20:1521:ora9";
    		String jdbcDriver = "oracle.jdbc.driver.OracleDriver";
    		String user = "scott";
    		String password = "tiger";
    
    		DbUtils.loadDriver(jdbcDriver);
    		try {
    			conn = DriverManager.getConnection(url, user, password);
    			QueryRunner qr = new QueryRunner();
    			List results = (List) qr.query(conn, "select id,name from guestbook", new MapListHandler());
    			
    			for (int i = 0; i < results.size(); i++) {
    				Map map = (Map) results.get(i);
    				System.out.println("id:" + map.get("id") + ",name:" + map.get("name"));
    			}
    		} catch (SQLException e) {
    			e.printStackTrace();
    		} finally {
    			DbUtils.closeQuietly(conn);
    		}
    	}
    }

     

    	public static void main(String[] args) {
    		Connection conn = null;
    		String url = "jdbc:oracle:thin:@192.168.1.20:1521:ora9";
    		String jdbcDriver = "oracle.jdbc.driver.OracleDriver";
    		String user = "scott";
    		String password = "tiger";
    
    		DbUtils.loadDriver(jdbcDriver);
    		try {
    			conn = DriverManager.getConnection(url, user, password);
    			QueryRunner qr = new QueryRunner();
    			List results = (List) qr.query(conn, "select id,name from guestbook", new BeanListHandler(Guestbook.class));
    			for (int i = 0; i < results.size(); i++) {
    				Guestbook gb = (Guestbook) results.get(i);
    				System.out.println("id:" + gb.getId() + ",name:" + gb.getName());
    			}
    		} catch (SQLException e) {
    			e.printStackTrace();
    		} finally {
    			DbUtils.closeQuietly(conn);
    		}
    	}

      

     

    		String sql = "insert into guestbook (id,name,email,phone,title,content,time) values(gb_seq.nextval,?,?,?,?,?,?)";
    String param[] = { StringUtil.filterHtml(name), StringUtil.filterHtml(request.getParameter("email")),
    					StringUtil.filterHtml(request.getParameter("phone")), StringUtil.filterHtml(title),
    					request.getParameter("content"), sdf.format(new java.util.Date()) };
    			try {
    				Context initContext = new InitialContext();
    				DataSource ds = (DataSource) initContext.lookup("java:/comp/env/jdbc/oracleds");
    				QueryRunner qr = new QueryRunner(ds);
    				result = qr.update(sql, param);
    			} catch (NamingException e) {
    				e.printStackTrace();
    			} catch (SQLException e) {
    				e.printStackTrace();
    			}

     

    连接池状态下不用管理连接的释放了。

     

     Cookie编程

     

    Cookie c = new Cookie(...);

    reponse.addCookie(c);

     

     Cookie[] cookies = request.getCookies();

     

     修改Cookie, reponse.addCookie(c);

     

     删除Cookie, 修改有效期.

     

    • Cookie的大小数量有限制
    • Cookie是文本文件,需加密
    • Cookie可以被禁用

     Session编程

     

            底层实现

    • Cookies

    cookiename: JSESSIONID

    cookievalue: ABDCEI

    • URL重写

     在链接后面增加jsessionid

     

     response.encodeURL("/servelt/getUesr");

     

     JSP (Java Server Page)

     

    %@page ... %

    page指令: contentType

                     pageEncoding

                    import

                    session

                    isErrorPage

                    errorPage

                   

    声明标记

          <%! .....%>

    还可以定义jspInit和jspDetory

     

    Scriptlet标记

    <% ... %>

     

    表达式标记

    <%=...%>

     

    include指令

     

    动作(action)

    <jsp:include> 与include指令的区别

    <jsp:forward>

    相当于:

    RequestDispatcher res = request.getRequestDispatcher("/index.jsp");
    res.forward(request,response); 

     

     JSP内置对象

    out,request,response,session,application

    config,page,pageContext,exception

     

     

    定制错误页面

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" 
      <error-page>
      <error-code>404</error-code>
      <location>/error404.htm</location>
     </error-page>
     <error-page>
      <error-code>500</error-code>
      <location>/error500.jsp</location>
     </error-page> 
    </web-app>

     

    taglib指令

    <%@ taglib uri=http://xxx.xxx.xxx.xxx/tags prefix="util"%>

     

     

     Apache Bean utils

     (1)

     BeanUtils.getProperty                           返回字符串

     PropertyUtils.getProperty                     返回对象

     

     BeanUtils.copyPreperties                       浅层拷贝

     

    (2)动态生成对象

    org.apache.commons.beanutils.LazyDynaBean

     

    (3)依赖于conn的遍历

      ResultSetDynaClass rsdc = new ResultSetDynaClass(rs);
      Iterator it = rsdc.iterator();
      while (it.hasNext()) {
       DynaBean bean = (DynaBean) it.next();
       System.out.println(bean.get("id"));
      }

     

    (4)不依赖于conn的遍历,耗内存

      RowSetDynaClass rsdc = new RowSetDynaClass(rs);
      Iterator it = rsdc.getRows().iterator();
      while (it.hasNext()) {
       DynaBean bean = (DynaBean) it.next();
       System.out.println(bean.get("id"));
      }

     

     MVC 模式

     

     JSPmodel1 vs JSPmodel2

     

    request.getRequestDispatcher().forward

    和reponse.sendRedirect的区别

     

    浏览器显示地址是否变化

    能否带request的值

    能否转到网站以外的url

    forward速度比sendRedirect快

     

     JSP EL

     

     减少jsp的代码

    方便jsp中代码的修改

     



     

     

     

     

     

     

     设定JSP不使用JSP EL

    <%@page isELIgnored="true"%>

     

    或者修改web.xml

     

    <web-app...>

    <jsp-config>

    <jsp-property-group>

    <url-pattern>*.jsp</url-pattern>

    <el-ignored>true</el-ignored>

    </jsp-property-group>

    </jsp-config>

    </web-app>

     

    或者转义

     

    \${}   '$'{}

     

    定制标记库

     

    TimerTag.java

    package com.mwang;
    
    import java.io.IOException;
    
    import javax.servlet.jsp.JspTagException;
    import javax.servlet.jsp.JspWriter;
    import javax.servlet.jsp.tagext.TagSupport;
    
    public class TimerTag extends TagSupport{
    	
    	private long starttime;
    	private long endtime;
    	
    	public int doStartTag() {
    		starttime = System.currentTimeMillis();
    		return EVAL_BODY_INCLUDE;
    	}
    	
    	public int doEndTag() throws JspTagException{
    		endtime = System.currentTimeMillis();
    		long eclapse = starttime - endtime;
    		
    		try {
    			JspWriter out = pageContext.getOut();
    			out.println("Running time = " + eclapse + " ms.");
    		} catch (IOException e) {
    			e.printStackTrace();
    			throw new JspTagException();
    		}
    		
    		return EVAL_PAGE;
    	}
    	
    
    }
    

     

     

    util.tld   需保存在WEB-INF下面

    <?xml version="1.0" encoding="UTF-8" ?>
    <taglib xmlns="http://java.sun.com/xml/ns/j2ee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
        version="2.0">
        <description>A tag library exercising SimpleTag handlers.</description>
        <tlib-version>1.0</tlib-version>
        <short-name>util</short-name>
        <uri>http://v521.com/taglib/util</uri>
        <tag>
    	<description>timer</description>
            <name>timer</name>
    	<tag-class>com.mwang.TimerTag</tag-class>
    	<body-content>JSP</body-content>
        </tag>
    </taglib>
    
    

     

    body-content: JSP, empty, sciptless, tagdependent

    JSP: 标记中间可以包含java或jsp代码

    empty:标记中间不可以包含内容

    sciptless: 不可以包含脚本

    tagdependent:由标记决定

     

     定义标记属性

     

    编写loopTag标记

     

    doAfterBod() {

            return EVAL_BODY_AGAIN

            return SKIP_BODY

    }

     

     



      

     

     

     可以加工body,进行二次加工

     

    标记库打包

     

    classes和tld文件,tld放在META-INF里面

     

    常用标记库介绍

     (1)JSTL

    (2)Jakarta Taglibs

    (3)Display tag     可以生成xml,csv和xls

     

    JSTL1.2已成为J2EE5的标准功能



     

    下载apache taglibs

     

    core

     



     

    format 标记库



     

    SQL标记库 不推荐使用,表示层不能直接访问数据库

     

    XML标记库  不推荐使用

     

    Functions标记库

     



     



     



     

     Servlet 监听器  配置web.xml

    可以在web应用中响应特定对象的特定事件

    (1)可以更加方便的控制application、session和request对象的发生的特定事件

    (2)可以集中处理特定的事件 

     

     httpsession监听器接口

            HttpSessionListener

                    sessionCreated,  sessionDestroyed

     

             HttpSessionAttributeListener

                    attributeAdded, attributedReplaced, attributeRemoved

     

              HttpSessionBindingListener

                     

            HttpSessionActivationListener

     

    ServletContextListener

           initialized   destroyed

     

    ServletContextAttributeListener

     

    ServletRequestListener

     

    ServletRequestAttributeListener

     

     Servlet 过滤器

     (1)用户认证与授权管理

    (2)统计web应用的访问量,命中率,形成访问报告

    (3)实现web应用的日志处理功能

    (4)实现数据压缩功能

    (5) 对数据传输进行加密

    (6)实现XML文件的XSLT转换

     

    编写javax.servlet.Filter接口的类

    配置Servlet过滤器

     



     

     文件上传

     

    package com.mwang;
    
    import java.io.File;
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.Iterator;
    import java.util.List;
    
    import javax.servlet.ServletConfig;
    import javax.servlet.ServletContext;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.apache.commons.fileupload.FileItem;
    import org.apache.commons.fileupload.FileUploadException;
    import org.apache.commons.fileupload.disk.DiskFileItemFactory;
    import org.apache.commons.fileupload.servlet.ServletFileUpload;
    
    public class UploadFileServlet extends HttpServlet {
    
    	ServletContext sc;
    
    	public void doGet(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    		doPost(request, response);
    	}
    
    	public void doPost(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    
    		DiskFileItemFactory factory = new DiskFileItemFactory();
    		ServletFileUpload upload = new ServletFileUpload(factory);
    
    		try {
    			List items = upload.parseRequest(request);
    			Iterator it = items.iterator();
    			while (it.hasNext()) {
    				FileItem item = (FileItem) it.next();
    				if (item.isFormField()) {
    					System.out.println(item.getFieldName() + ":" + item.getString("UTF-8"));
    				} else {
    					if (item.getName()!= null && !item.getName().equals("")){
    						System.out.println("File size:" + item.getSize());
    						System.out.println("File type:" + item.getContentType());
    						System.out.println("File name:" + item.getName());
    						
    						File tempFile = new File(item.getName());
    						File file = new File(sc.getRealPath("/") + "aaa",tempFile.getName());
    						item.write(file);
    					}
    				}
    			}
    		} catch (FileUploadException e) {
    			e.printStackTrace();
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    
    	}
    
    	public void init(ServletConfig config) throws ServletException {
    		sc = config.getServletContext();
    	}
    
    }
    

     

     

    Java邮件发送

     

     javamail 下载,发送程序复杂

     

       利用apache commons email

     

    	public static void main(String[] args) {
    		SimpleEmail email = new SimpleEmail();
    		email.setHostName("202.38.64.8");
    		email.setAuthentication("xxx@mail.ustc.edu.cn", "xxx");
    		email.setCharset("utf-8");
    		
    		try {
    			email.setFrom("xxx@mail.ustc.edu.cn");
    			email.addTo("xxx@mail.ustc.edu.cn");
    			email.setSubject("Hello");
    			email.setMsg("This is my first mail!");
    			email.send();
    		} catch (EmailException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    	}

     

     

    public static void main(String[] args) {
    		MultiPartEmail email = new MultiPartEmail();
    		email.setHostName("202.38.64.8");
    		email.setAuthentication("xxx@mail.ustc.edu.cn", "xxx");
    		email.setCharset("utf-8");
    		
    		try {
    			email.setFrom("xxx@mail.ustc.edu.cn");
    			email.addTo("xxx@mail.ustc.edu.cn");
    			email.setSubject("Hello");
    			email.setMsg("This is my first mail!");
    			
    			EmailAttachment attachment = new EmailAttachment();
    			attachment.setPath("c:/abc.txt");
    			attachment.setDisposition(EmailAttachment.ATTACHMENT);
    			attachment.setName("abcabcabca");
    			email.attach(attachment);
    			
    			email.send();
    		} catch (Exception e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    	}

     

     DAO设计模式和数据分页显示

        

        Displaytag标记库  

        http://displaytag.sourceforge.net/

     

        Pager 标记库

        http://jsptags.com/tags/navigation/pager

     

       

     乱码问题

     

     native2ascii -encoding utf-8 c.properties d.properties

     把utf-8格式的文件转换成ascii码

     

    eclipse windows -> Preference -> Content Type

     

     

    展开全文
  • Web前端开发工程师实战培训教程 现在Web前端开发的工作需求量很大,很多企业都专门去招聘Web前端的开发人员,待遇都是轻松过万的 我推荐给你们一套系统性学习Web前端开发的课程,可以完整的学习Web前端课程,...
  • MLDN JAVA-web培训视频教程

    千次阅读 2011-03-03 15:05:00
    市面上大多JAVA培训教程以J2SE为主,J2EE教程凤毛麟角,MLDN本次出品《魔乐先生 JAVA-WEB开发实战》 突出了JAVAWEB基础语法的讲解,从JSP的基础知识和基本语法入手,循序渐进、深入浅出地介绍了JSP的各种...
  • html5教程-深入解析web前端工程师基础,直击面试常见问题,因材施教,分级培优,量身定制课程,名师授课,0基础到项目开发,口碑最好的html5教程,正是前端才让互联网更有魅力! html5教程教程介绍 如何自学html5 html5...
  • web前端开发视频教程 Web前端开发工程师培训 零基础Web前端开发工程师高端培训配项目开发(月薪过万的最佳选择) 课程讲师:叮咚 课程分类:套餐推荐 适合人群:初级 课时数量:305课时 ...
  • BF-TECH Web视觉设计师网络高端培训适合人群:初级课时数量:260课时更新程度:70%用到技术:PS、UI涉及项目:使用曲线打造电影感场景、游戏界面主题风格咨询qq:1840215592 Web视觉设计详细查看:http://***...
  • 动画  CSS3属性中有关于制作动画的三个属性:  transform,transition,animation  keyframes  @keyframes mymove{ from{初始状态属性}  to{结束状态属性}  }  或  @keyframes mymove{ ... }...
  • [free]乌云网已经被封了,这套教程是网络仅有的几套白帽子教程之一,有兴趣的朋友珍惜哦![/free]下载地址:百度网盘

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 945
精华内容 378
关键字:

web教程培训