java學習

          java學習

           

          struts2值棧取值和session,request,application的取值

          在strut2中所以的值都在值棧中存放,在頁面中加入<s:debug></s:debug>標簽,就可以點擊顯示出當前值棧中的所有值,如圖
          可以通過 <s:property value="name"/>標簽得到值棧中的值,value的值是PropertyName,就可以得到對應的value

          在action中session,request,application都是Map數據類型的
          private Map session;
           private Map request;
           private Map application;
          session =  ActionContext.getContext().getSession();
            request = (Map) ActionContext.getContext().get("request");
            application =  ActionContext.getContext().getApplication();
            session.put("sk", "sv");
            request.put("rk", "rv");
            application.put("ak", "av");
          想在頁面中取到相應的值;
           <s:property value="#session.sk"/>
           <s:property value="#request.rk"/>
           <s:property value="#application.ak"/>
          使用<s:debug></s:debug>觀看他們都是存放在棧區,#+名稱就可以取到值

          posted @ 2013-04-11 22:56 楊軍威 閱讀(1620) | 評論 (0)編輯 收藏

          struts2命名空間和訪問路徑

          namespace決定來了action的訪問路徑,當namespace=“”時,可以接受所有路徑的action,namespace=“/”,

          或者"/xxx,或者"/xxx/yyy",對應的action訪問路徑是/index.action,或者/xxx/index.action,或

          者/xxx/yyy/index.action.


          <%
          String path = request.getContextPath();
          String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort

          ()+path+"/";
          %>
          <base href="<%=basePath%>">
          在使用namespace時容易出現路徑問題,在會出現路徑問題的jsp頁面中加上base標簽,就不會了。

          posted @ 2013-04-10 23:11 楊軍威 閱讀(333) | 評論 (0)編輯 收藏

          java取得實時上周的時間

          import java.text.SimpleDateFormat;
          import java.util.Calendar;
          import java.util.Date;

          public class Test {
              public static void main(String[] args) {
                  Calendar calendar = Calendar.getInstance();
                  calendar.setFirstDayOfWeek(Calendar.MONDAY);

                  calendar.add(Calendar.DATE, -7);
                  calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
                  Date    sTime = calendar.getTime();
                  calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
                  Date    eTime = calendar.getTime();
                  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
                  String s = sdf.format(sTime) + " 00:00:00";
                  String e = sdf.format(eTime) + " 23:59:59";
                  System.out.println(s);
                  System.out.println(e);
              }
          }

          posted @ 2013-04-09 16:43 楊軍威 閱讀(1408) | 評論 (0)編輯 收藏

          struts2實現登錄攔截器和驗證方法

               摘要: 在struts2中的攔截器的定義是先定義一個類實現Interceptor接口,重寫intercept方法。下面是實現登錄驗證的攔截器。 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC    "-//Apache Software Foundation//DTD Struts C...  閱讀全文

          posted @ 2013-04-06 23:43 楊軍威 閱讀(4890) | 評論 (5)編輯 收藏

          java復習

          Typeof()返回值有6中可能:numberstring,booleanobject,function,undefined

          Prompt(“請輸入名稱”)返回字符

          eval(“”)可以把“”中的字符串執行

          java中繼承的構造方法的規則:

          1.       子類的構造的過程中必須調用其父類的構造方法。

          2.       子類可以在自己的構造方法中使用superargumentlist)調用父類的構造方法。

          3.       使用thisargumentlist)調用自己的另外的構造方法。

          4.       如果調用super,必須卸載子類構造方法的第一行。

          5.       如果子類的構造方法中沒有顯示調用父類工作服,系統默認調用父類無參數的構造方法。

          6.       如果子類構造方法中沒有顯示調用父類的構造方法,而父類中又沒有無參數的構造方法,編譯出錯。

          哈希編碼:每個對象都有一個獨一無二的哈希編碼,通過這個哈希編碼可以找到這個對象。

          多態中動態綁定規則;1.有繼承,2.有重寫(子類重寫父類中的方法),3.父類引用指向子類對象。

          Public void getId(final int i){}表示i在此方法中不同被修改

          posted @ 2013-04-06 14:19 楊軍威 閱讀(200) | 評論 (0)編輯 收藏

          hibernate對數據庫的建立和刪除

          <!--?啟動時刪數據庫中的表,然后創建,退出時不刪除數據表

          <property?name="hibernate.hbm2ddl.auto">create</property>-->

          <!--?啟動時刪數據庫中的表,然后創建,退出時自動刪除所有表

          <property?name="hibernate.hbm2ddl.auto">create-drop</property>-->

          <!--?自動修改,如果表結構與實體類不一致,那么就修改表使它們一致,數據會保留

          <property?name="hibernate.hbm2ddl.auto">update</property>-->

          <!--?自動校驗,如果表結構與實體類不一致,那么不做任何操作,報錯

          <property?name="hibernate.hbm2ddl.auto">validate</property>-->

          posted @ 2013-04-05 20:52 楊軍威 閱讀(201) | 評論 (0)編輯 收藏

          java io讀取文本文件

          public class ReadSql {

           public static void readsql(String filePath) throws Exception{
            String encoding = "gbk";
            File file = new File(filePath);
            if(file.isFile()&&file.exists()){
             InputStreamReader reader = new InputStreamReader(new FileInputStream(file),encoding);
            BufferedReader bufferedReader = new BufferedReader(reader);
             String line = null;
             while ((line = bufferedReader.readLine())!=null) {    
               System.out.println(line.toString());           
             }
             reader.close();
            }
           }
           public static void main(String[] args) throws Exception {
            System.out.println("=================================================");
            ReadSql.readsql("c:/rr.txt"); 
            
            System.out.println("=================================================");
           }
          }

          posted @ 2013-04-03 13:33 楊軍威 閱讀(223) | 評論 (0)編輯 收藏

          阿里云注冊用戶建立自己的網站

          阿里云服務平臺注冊相當于申請到了一臺服務器主機,想運行java web項目很簡單,安裝jdk,tomcat,數據庫,把編譯好的項目放在tomcat中,啟動tomcat,在外網直接訪問阿里云主機ip和端口,項目名稱,就可以了

          posted @ 2013-04-03 10:15 楊軍威 閱讀(214) | 評論 (0)編輯 收藏

          java網絡編程中tcp和udp

          在網絡編程中,先啟動service,再啟動clent。
          1.tcp
          服務端
          public class Service {
          public static void main(String[] args) throws Exception {
          ServerSocket ss = new ServerSocket(6666);
          System.out.println("等待");
          while (true) {
          Socket socket  =ss.accept();
          InputStream is = socket.getInputStream();
          DataInputStream dataInputStream = new DataInputStream(is);
          System.out.println(dataInputStream.readUTF());
          dataInputStream.close();
          socket.close();
          }
          }
          }
          客戶端
          public class CientSocket {
          public static void main(String[] args) throws Exception {
          Socket socket = new Socket("127.0.0.1",6666);
          OutputStream outputStream = socket.getOutputStream();
          DataOutputStream dataOutputStream = new DataOutputStream(outputStream);
          dataOutputStream.writeUTF("333333333");
          dataOutputStream.flush();
          dataOutputStream.close();
          socket.close();
          }
          }
          udp通信,是不區分客戶端和服務端的
          public class Service {
          public static void main(String[] args) throws Exception {
          byte buf[] = new byte[1024];
          DatagramPacket dPacket = new DatagramPacket(buf, buf.length);
          DatagramSocket dSocket = new DatagramSocket(5678);
          while (true) {
          dSocket.receive(dPacket);
          System.out.println(new String(buf,0,dPacket.getLength()));
          }
          }
          }
          public class UdpClient {
          public static void main(String[] args) throws Exception{
          while (true) {
          byte[] buf = (new String("hello")).getBytes();
          DatagramPacket dpPacket = new DatagramPacket(buf, buf.length, new InetSocketAddress("127.0.0.1", 5678));
          //自己占用9999端口
          DatagramSocket dSocket = new DatagramSocket(9999);
          dSocket.send(dpPacket);
          dSocket.close();
          }
          }
          }

          posted @ 2013-04-02 22:28 楊軍威 閱讀(171) | 評論 (0)編輯 收藏

          web.xml加載過程

          當我們去啟動一個 WEB 項目的時候, 容器(包括 JBoss, Tomcat 等)首先會去讀項目的 web.xml 配置文件里面的信息, 

          當這一步驟沒有出錯并且完成之后, 項目才能正常的被啟動起來。

          1> 首先是, 容器會先讀 <context-param></context-param> 節點, 并創建一個 ServletContext 實例, 以節點的 name 作為鍵, value 作為值, 

             存儲到上下文環境中。

          2> 接著, 容器會去讀 <listener></listener> 節點, 根據配置的 class 類路徑來創建監聽。

          3> 接著, 容器去讀 <filter></filter> 節點, 根據指定的類路徑來實例化過濾器。

          以上都是在 WEB 項目還沒有完全啟動起來的時候就已經完成了的工作。如果系統中有用到 Servlet, 則 Servlet 是在第一次發起請求的時候被實例化的,

          且一般不會被容器銷毀, 它可以服務于多個用戶的請求。所以, Servlet 的初始化都要比上面提到的那幾個要遲。

          總的來說, web.xml 的加載順序是: context-param --> listener --> filter --> servlet

          其中, 如果 web.xml 中出現了相同的節點, 則是按照在配置文件中出現的先后順序來加載的。

          下面引入一個小列子來說明:

            
          <?xml version="1.0" encoding="UTF-8"?>
            
            <listener>
              <listener-class>net.yeah.fancydeepin.listener.AppStartListener</listener-class>
            </listener>
            
            <!-- 為了更好的說明, 特意將 context-param 放在 listener 后面 -->
            <context-param>
              <param-name>technology</param-name>
              <param-value>java,javascript,ajax,css,html</param-value>
            </context-param>
            
            <filter>
              <filter-name>ReDespatcherFilter</filter-name>
              <filter-class>net.yeah.fancydeepin.filter.ReDespatcherFilter</filter-class>
              <init-param>
                <param-name>it</param-name>
                <param-value>android, python, c</param-value>
              </init-param>
            </filter>
            <filter-mapping>
              <filter-name>ReDespatcherFilter</filter-name>
              <url-pattern>/*</url-pattern>
            </filter-mapping>
            
            <filter>
              <filter-name>ReDespatcherFilter2</filter-name>
              <filter-class>net.yeah.fancydeepin.filter.ReDespatcherFilter2</filter-class>
              <init-param>
                <param-name>mail</param-name>
                <param-value>fancydeepin@yeah.net</param-value>
              </init-param>
            </filter>

          </web-app>
            

           

            
          package net.yeah.fancydeepin.listener;

          import java.util.Arrays;
          import java.util.List;
          import javax.servlet.ServletContext;
          import javax.servlet.ServletContextEvent;
          import javax.servlet.ServletContextListener;

          public class AppStartListener implements ServletContextListener{

              public void contextInitialized(ServletContextEvent contextEvent) {
                  System.out.println("********************************************");
                  ServletContext context = contextEvent.getServletContext();
                  List<String> params = Arrays.asList(context.getInitParameter("technology").split(","));
                  for(String param : params){
                      System.out.print(param + "\t");
                  }
                  System.out.println("\n********************************************");
              }

              public void contextDestroyed(ServletContextEvent contextEvent) {
                  
              }

          }
            

           

            
          package net.yeah.fancydeepin.filter;

          import java.io.IOException;
          import javax.servlet.Filter;
          import javax.servlet.FilterChain;
          import javax.servlet.FilterConfig;
          import javax.servlet.ServletException;
          import javax.servlet.ServletRequest;
          import javax.servlet.ServletResponse;

          public class ReDespatcherFilter implements Filter {
              
              public void init(FilterConfig filterConfig) throws ServletException {

                  System.out.println("============================================");
                  System.out.println(filterConfig.getInitParameter("it"));
                  System.out.println("============================================");
              }
              
              public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException,ServletException{
                  
                  chain.doFilter(request, response);
              }
              
              public void destroy() {
                  
              }
          }
            

           

            
          package net.yeah.fancydeepin.filter;

          import java.io.IOException;
          import javax.servlet.Filter;
          import javax.servlet.FilterChain;
          import javax.servlet.FilterConfig;
          import javax.servlet.ServletException;
          import javax.servlet.ServletRequest;
          import javax.servlet.ServletResponse;

          public class ReDespatcherFilter2 implements Filter {
              
              public void init(FilterConfig filterConfig) throws ServletException {

                  System.out.println("++++++++++++++++++++++++++++++++++++++++++++");
                  System.out.println(filterConfig.getInitParameter("mail"));
                  System.out.println("++++++++++++++++++++++++++++++++++++++++++++");
              }
              
              public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException,ServletException{
                  
                  chain.doFilter(request, response);
              }
              
              public void destroy() {
                  
              }
          }
            


          后臺啟動輸出結果:

          posted @ 2013-04-01 20:48 楊軍威 閱讀(215) | 評論 (0)編輯 收藏

          僅列出標題
          共43頁: First 上一頁 23 24 25 26 27 28 29 30 31 下一頁 Last 

          導航

          統計

          常用鏈接

          留言簿

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 环江| 广东省| 南涧| 大关县| 宁陵县| 邯郸市| 连平县| 凤阳县| 乌拉特后旗| 富锦市| 卫辉市| 华坪县| 宜川县| 桃园县| 温泉县| 吐鲁番市| 井陉县| 宿迁市| 虹口区| 特克斯县| 景宁| 郴州市| 永泰县| 霍城县| 凤山县| 勃利县| 宁陕县| 通海县| 襄城县| 莎车县| 德保县| 西和县| 岳西县| 嘉黎县| 衡水市| 驻马店市| 新竹市| 广平县| 怀仁县| 页游| 南和县|