zoukankan      html  css  js  c++  java
  • HTML 简介 和 特殊字符过滤器

    HTML简介

    快速开发平台

    HTML称为超文本标记语言,是一种描述文档结构的标记语言,它是一种应用非常广泛的网页格式,它与操作系统无关,只要有浏览器就可以运行HTML文档,显示网页内容。

    1.标题<Hn>

    格式:<Hn>标题</Hn>,n可取1~6之间的值。

    <h1>到<h6>字体依次变小。

    2.字体变化<font>

    (1)size用来设定文本大小 <fontsize=n>...</font>n为1~7,数字越大字体越大。
    (2)face用来设定文本的字体 <fontface="字体名称">...</font>
    (3)color设定文本的颜色 <fontcolor="颜色">...</font>
    (4)显示小字体用small <small>...</small>之间的文本显示时变小
    (5)显示大字体用big<big>...</big>之间的文本显示时变大
    (6)粗体字<b>...</b>之间的文本产生加粗效果
    (7)斜体字<i>...</i>之间的文本产生斜体效果
    (8)下划线<u>...</u>之间的文本显示时加底线
    (9)删除线<s>...</s>之间的文本显示时加删除线

    3.强制换行<br>

    <br>为换行标记,<br>属于单标记,没有结束标记

    4.段落标记<p>

    <p>用于分段,<p>...</p>之间的文字在同一段落。结束标记</p>可以省略,下一个<p>开始意味着上一个<p>结束。

    文字的对齐方向<palign="n">

    n可为

    left:表示向左对齐

    center:表示向中对齐

    right:表示向右对齐

    5.水平线标记<hr>

    <hr>可以在页面中产生一条水平线,没有结束标记。

    (1)分隔线的粗细,值为整数,单位为像素<hrsize=s>

    (2)分隔线对齐方向,<hralign=n>
     n可为left:表向左对齐

    center:表向中对齐

     right:表向右对齐
    (3)分隔线的颜色<hrcolor=颜色>

    HTML特殊字符过滤器

    /**
     * HTML标签过滤,防止用户恶意提交带HTML标签的数据
     * 
     * @author liulg
     */
    public class HTMLCharacterRequest extends HttpServletRequestWrapper {
    
    	public HTMLCharacterRequest(HttpServletRequest request) {
    		super(request);
    	}
    
    	@Override
    	public String getParameter(String name) {
    		String value = super.getParameter(name);
    		return filter(value);
    	}
    
    	@Override
    	@SuppressWarnings("unchecked")
    	public Map getParameterMap() {
    		Map<String, String[]> map = super.getParameterMap();
    		Map<String, String[]> map_ = new HashMap<String, String[]>();
    
    		Set<Entry<String, String[]>> set = map.entrySet();
    		Iterator<Entry<String, String[]>> it = set.iterator();
    		while (it.hasNext()) {
    			Entry<String, String[]> entry = it.next();
    			if (entry != null && entry.getValue() != null
    					&& entry.getValue().length > 0) {
    				String[] array = new String[entry.getValue().length];
    				for (int i = 0; i < entry.getValue().length; i++) {
    					array[i] = filter(entry.getValue()[i]);
    				}
    				map_.put(entry.getKey(), array);
    			}
    		}
    		return map_;
    	}
    
    	@Override
    	public String[] getParameterValues(String name) {
    		String[] values = super.getParameterValues(name);
    		if (values == null || values.length == 0)
    			return values;
    		for (int i = 0; i < values.length; i++) {
    			String str = values[i];
    			values[i] = filter(str);
    		}
    		return values;
    	}
    
    	private String filter(String value) {
    		if (StringUtil.isNotBlank(value)) {
    			value = value.replaceAll("<", "[").replaceAll(">", "]");
    		}
    		return value;
    	}
    
    }
    
    /**
     * 权限访问控制
     * 
     * @author luo
     */
    public class PermitFilter implements Filter {
    
    	private static Map<String, Object> sysMenusMap = new HashMap<String, Object>();
    	
    	private static String[] params = null;
    
    	private final static String LOGIN_VIEW = "/jsp/index/login.jsp";
    
    	public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain)
    			throws IOException, ServletException {
    
    		HttpServletRequest request = (HttpServletRequest) req;
    		HttpServletResponse response = (HttpServletResponse) resp;
    		
    		String uri = request.getRequestURI();
    		String contextPath = request.getContextPath();
    		uri = uri.substring(contextPath.length());
    		
    		Object obj = request.getSession().getAttribute(Constant.USER_SESSION);
    		
    		
    		if(obj == null){
    			
    			//未登录可放行的访问
    			for (String p : params) {
    				if (uri.startsWith(p)) {
    					chain.doFilter(req, resp);
    					return;
    				}
    			}
    			//aJax访问 (未登录不可放行)
    			if (request.getHeader("x-requested-with") != null
    					&& request.getHeader("x-requested-with").equalsIgnoreCase( // ajax超时处理
    							"XMLHttpRequest")) {
    				JspUtils.print(response, "timeout");
    				return;
    			}
    			//普通访问 (未登录不可放行)
    			request.getRequestDispatcher(LOGIN_VIEW).forward(req, resp);
    			
    		}else{
    			
    			//是否越权访问
    			Users user  = (Users) obj;
    			List<Menu> menus = new ArrayList<Menu>(user.getRose().getMenus());
    			 
    			boolean flag =false;
    			if(sysMenusMap.get(uri) != null){
    				for (Menu menu : menus) {
    					if(StringUtil.isNotBlank(menu.getMenuUrl())) 
    						if(uri.equals("/"+menu.getMenuUrl())){
    							flag=true;
    							break;
    						}	
    				}
    			}else{
    				chain.doFilter(new HTMLCharacterRequest(request), resp);
    				return;
    			}
    			
    			
    			if(flag){
    //				chain.doFilter(request, resp);
    				chain.doFilter(new HTMLCharacterRequest(request), resp);
    				return;
    			}else{
    				JspUtils.print(response, "<script>alert('无权访问');</script>");
    				return ;
    			}
    			 
    		}
    		
    	}
    
    	public void init(FilterConfig config) throws ServletException {
    		params = config.getInitParameter("p").split(",");
    		RoseDao roseDao = (RoseDao) Springs.getApp().getBean("roseDaoImpl");
    		List<Menu> sysMenus =  roseDao.findAllMenuBy_URL_NOTNULL();
    		for (Menu menu : sysMenus) {
    			sysMenusMap.put("/"+menu.getMenuUrl(), menu.getMenuName());
    		}
    	}
    
    	public void destroy() { } 
    } 

    本站文章除注明转载外,均为本站原创或翻译,欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,共创和谐网络环境。
    转载请注明:文章转载自:快速开发框架 » HTML 简介 和 特殊字符过滤器
    本文标题:HTML 简介 和 特殊字符过滤器

  • 相关阅读:
    正确显示textarea中输入的回车和空格
    HmacSHA256算法(C# 和 Java)
    Java RSA分段加密
    穿越古代我能做啥?
    DOS常用命令
    C#泛型学习
    一步一步搭建Nuget私服
    深入理解HTTP协议
    PowerDesigner设置code和name不联动的方法
    log4net通过代码控制按分类输出
  • 原文地址:https://www.cnblogs.com/frfwef/p/14574984.html
Copyright © 2011-2022 走看看