JAVA WEB开发笔记

web开发一直很火,是很好的就业和职业发展方向。

包含的技术特别多,而且每一种技术包含的东西也特别多。很容易遗忘,但是也必须掌握。

HTML

CSS

JAVASCRIPT

JQUERY

BOM

DOM

XML

SESSION

COOKIE

servlet request  response filter

jsp

ajax

mysql jdbc hibernate mybatis

structs2

spring

 

 

html :

列表、超链接、表格、br hr 空格 img href  frameset/frame

JS:

<scripttype="text/javascript">

         CODE

</script>

 

CODE:

var a =1;

document.write("变量a="+a);//在网页上输出的

CSS :就是为一些组件设置样式,有三种选择器,里面有各种选项的设置。

 <style type="text/css">

           font{

                  font-size:20px;

           }

          

 </style>

<font >冠希 /  阿娇</font>

 

                   div{

                            font-family:"黑体";

                            font-size:3cm;

                            color:black;

                   }

                   .cc{

                            font-size:2cm;

                            color:"green"

                   }

#div1{

                            color:red;

                            font-family:"宋体";

                   }

 

div/类选择器/标签

         <divid="div1">阿娇我想你了</div>

         <div>芙蓉姐姐我想你了</div>

 

         <spanid="div1" class="cc">aaaa</span><span>bbbbb</span>

a:hover{

color:yellow;

}

a:active{

color:green;

font-size:2cm;

}

font-style:italic;

font-weight:bold;

font-size:36px;

font-family:"宋体"

text-indent:6em;

text-align:right;

还有定位、重叠……………………

 

 

BOM

Browser Object Model 浏览对象模型

         Window:

         Location:

         History:

         Document:

        

         Navigator:

         Screen:

 

 DOM  document.

键盘事件

<input type="text"id="keyinfo" οnkeydοwn="appendKey()"οnkeypress="keypress()" οnkeyup="keyup()" />

提交事件

<form action="01modal.html"method="post" οnsubmit="return chk()">

</form>

onchange事件

     <select id="province" οnchange="changCity()">

         

     </select>

 05dom结点信息

alert(document.getElementById("h1").innerHTML);

06dom取值

var bjNode

bjNode.childNodes;

var t

t.nodeName

t.nodeValue

 

07option文本

 <select name="edu" id="edu">

                   <optionvalue="本科">本科^^</option>

                  

         </select>

            var eduNode =document.getElementsByTagName("option");

eduNode[i].innerHTML

 

^^^^…………………………………………

 

SAXParser parser

XMLReader reader

XMLReader.setContentHandler(ContentHandlerhandler)

reader.parse("src/books.xml");

 

 

SAXReader reader = new SAXReader();

Document document =reader.read("src/exam.xml")

//2.找根

                      Element root = document.getRootElement();

                      //3.由找到的根结点,去添加student子结点

                      Element studentEle =root.addElement("student");

                      //4.给student结点添加属性

                      studentEle.addAttribute("idcard",stu.getIdcard());

                      studentEle.addAttribute("examid",stu.getExamid());

                     

                      //5.student结点添加内部子结点

                     studentEle.addElement("name").setText(stu.getName());

                     studentEle.addElement("location").setText(stu.getLocation());

                     studentEle.addElement("grade").setText(stu.getGrade()+"");

                     

                      //6.写回数据

                      Dom4jUtil.writeDocument2Xml(document);

dom4j-1.6.1.jar

jaxen-1.1-beta-6.jar

它需要jar包。

importorg.dom4j.Document;

importorg.dom4j.io.OutputFormat;

importorg.dom4j.io.SAXReader;

importorg.dom4j.io.XMLWriter;

 

遍历和删除就略了。已经明白了它是干什么的,根据oop的思想,很容易推断代码的意义。根据面试的条件,百度就行,记得亲自测试一遍。

 

servlet

 

day07_00_servlet\WebRoot\WEB-INF\web.xml

建立一个servlet(服务器),并且提供一种访问:

public class ServletDemo1extends GenericServlet {

         public voidservice(ServletRequest arg0, ServletResponse arg1)

                            throwsServletException, IOException {

         }

}

注意顺序:

<servlet>

       <servlet-name>ServletDemo1</servlet-name>

       <servlet-class>com.itheima.servlet.ServletDemo1</servlet-class>

  </servlet>

  <servlet-mapping>

       <servlet-name>ServletDemo1</servlet-name>

       <url-pattern>/servlet/ServletDemo1</url-pattern>

  </servlet-mapping>

 

servlet本质是socket类,可以读本地资源、req是socket(input);res是(inputstream)。

req,获取参数:

res,向网页写:

例子:

 

response.getWriter().write("ServletDemo3");

         OutputStream os =response.getOutputStream();

os.write(buffer,0,len);

 

 

 

         String remoteAddr =request.getRemoteAddr();//得到客户端的IP

                  Stringmethod = request.getMethod();//得到发送请求的方式

                   String localAddr =request.getLocalAddr();//本机的IP

                   StringBuffer  sb = request.getRequestURL();//协议+主机+资源

                   Stringuri=request.getRequestURI();//资源

 

//重定向   特点1地址发生必变,2其实是对服务器做了2次请求  3.放在request域中的数据在重定向页面中不能取

                   response.sendRedirect("/day08_00_response/1.html");

 

         Form请求:

<formaction="/day08_01_requestform/servlet/ParamServletDemo1"method="post">

</form>

使用jar获取参数:

day08_01_requestform\WebRoot\WEB-INF\lib\commons-beanutils-1.8.3.jar

commons-beanutils-1.8.3.jar

commons-logging-1.1.1.jar

<url-pattern>/servlet/ParamServletDemo1</url-pattern>

姓名:<input type="text" name="name"/><br/>

com.itheima.domain.Student

         private String name;

         public String getName()

         public voidsetName(String name)

         BeanUtils.populate(newStudent(), request.getParameterMap());

 

         //转发

         request.setAttribute("user","cgx");

//request.removeAttribute("user");

        

                   request.getRequestDispatcher("/servlet/ForwardDemo2").forward(request,response);

  <url-pattern>/servlet/ForwardDemo2</url-pattern>

                   String user =(String)request.getAttribute("user");

                   System.out.println("yes1");//out

 

 

估计每个servlet都有自己的一个输出页面。getRequestDispatcher将新开一个页面,把原页面的内容覆盖了。

 

                   response.getWriter().write("yes2");//?不输出

                   request.getRequestDispatcher("/servlet/ForwardDemo2").forward(request,response);

                   System.out.println("no1");//out

                   response.getWriter().write("no2");//?不输出

将输出包含了进来。

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

                   //以源资源为主

                   response.getWriter().write("hello,");

                   RequestDispatcher rd =request.getRequestDispatcher("/servlet/IncludeDemo2");

                   //包含只会将目标资源中响应正文内容包含进来

                   rd.include(request,response);

                  

                   response.getWriter().write("helloend");

重定向:

                   response.sendRedirect("/day08_02_forward/servlet/RedirectDemo2");

 

Cookie

CookiecookieTime = new Cookie("mycookieTime",System.currentTimeMillis()+"");

cookieTime.setMaxAge(Integer.MAX_VALUE);

   response.addCookie(cookieTime);

 

Cookie[] cookies = request.getCookies();

        for(int i=0;cookies!=null&&i<cookies.length;i++){

                 Cookiec = cookies[i];

                 if("mycookieTime".equals(c.getName())){

                            //取值  54645657564

                           Stringtime = c.getValue();

 

                                   //3.设置setMaxAge(0)

                                   c.setMaxAge(0);//就是删除

 

                   c.setPath(request.getContextPath());//设置路径,这样可以使得当前应用下的Servlet都能用

http://blog.csdn.net/fangaoxin/article/details/6952954

客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。

Cookie具有不可跨域名性。根据Cookie规范,浏览器访问Google只会携带Google的Cookie,而不会携带Baidu的Cookie。Google也只能操作Google的Cookie,而不能操作Baidu的Cookie。

maxAge为负数的Cookie,为临时性Cookie,不会被持久化,不会被写到Cookie文件中。。Cookie信息保存在浏览器内存中,因此关闭浏览器该Cookie就消失了。Cookie默认的maxAge值为–1。

如果maxAge为0,则表示删除该Cookie。Cookie机制没有提供删除Cookie的方法,因此通过设置该Cookie即时失效实现删除Cookie的效果。失效的Cookie会被浏览器从Cookie文件或者内存中删除,

要想修改Cookie只能使用一个同名的Cookie来覆盖原来的Cookie,达到修改的目的。

 

 

servlet

public class ServletDemo1 extends HttpServlet

voidcom.itheima.servlet.ServletDemo1..

voidcom.itheima.servlet.ServletDemo1.doPost(

 

 

 

 

filter

FilterDemo1implements Filter

Filter例子:

public voiddoFilter(ServletRequest request, ServletResponse response.

System.out.println("FilterDemo1前");

                   chain.doFilter(request,response);//放行。让目标执行

                   System.out.println("FilterDemo1后");

FilterDemo2implements Filter

 

xml配置:

        

         <filter>

                   <filter-name>FilterDemo1</filter-name>

                   <filter-class>com.itheima.filter.FilterDemo1</filter-class>

         </filter>

         <filter-mapping>

                   <filter-name>FilterDemo1</filter-name>

                   <url-pattern>/*</url-pattern>

         </filter-mapping>

         <filter>

                   <filter-name>FilterDemo2</filter-name>

                   <filter-class>com.itheima.filter.FilterDemo2</filter-class>

         </filter>

         <filter-mapping>

                   <filter-name>FilterDemo2</filter-name>

                   <url-pattern>/*</url-pattern>

         </filter-mapping>

 

out:

FilterDemo1前

FilterDemo2前

ServletDemo1执行了

FilterDemo2后

FilterDemo1后

 

 

 

 

console:

FilterDemo1前

ServletDemo1执行了

FilterDemo1后

 

Filter的原理是什么?

 

 

 

 

 

 

 

 

 

 

 

 

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值