顯示具有 JSP 標籤的文章。 顯示所有文章
顯示具有 JSP 標籤的文章。 顯示所有文章

2011年12月19日 星期一

熊吉的超級市場 開放程式碼

jsp檔


中文北風(含自建Account資料表)





隨意取用 支持開放原始碼




幾大遺珠:
雖然一開始風格就走惡搞取向,但是惡搞得不夠徹底,缺乏真正的惡趣味設計
CSS還是難搞,在不同瀏覽器看來還是有些微出入
javabean的精隨還未參透,只是假設性的實驗寫法,感覺不是最佳寫法
用了一堆reques接參數,大概有1/4都是reques,感覺有更聰明的方法
AJAX是殺小
transaction rollback怎麼玩呀,又要怎樣判定它交易成功還失敗
jQoery沒用到
一些前端功能由於之前JAVA已寫了,也懶得改
功能多 = Bug其實也很多,只是沒展示出來,以前的畢製老師說,藏拙於巧,巧妙的避開致命點,你就顯得很無敵
熊吉最終還是逃不過悲慘命運

2011年12月14日 星期三

JSP select tag 選值問題 JAVA解法

很多人問,不囉嗦直接參考程式碼

這是寫死的如果選項很多 請用迴圈

javascript或者J摳瑞也能解決(而且通常是這麼做),但我跟他們不熟

 

 

 

 



<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<!--DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"-->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
String category = request.getParameter("category");
if (category == null) {
	category = "aa";
}
String op1 = "";String op2 = "";String op3 = "";
if (category.equals("aa")) {
	op1 = "selected";
}
if (category.equals("bb")) {
	op2 = "selected";
	}
if (category.equals("cc")) {
	op3 = "selected";
}
%>
<form action="">
<select id="category" name="category">
	<option <%=op1 %> value='aa'>1</option>
	<option <%=op2 %> value='bb'>2</option>
	<option <%=op3 %> value='cc'>3</option>	
</select>
<input type="submit" value="go"/>
</form>
</body>
</html>


2011年12月6日 星期二

即使是爪哇豆豆也無法阻擋我在首頁放上熊吉

eclipse新增JSP頁面預設是

<%@ page language="java" contentType="text/html; charset=BIG5" pageEncoding="BIG5"%>

但是身為國際化的人類網頁裡只能放中文 英文也太不合理

就連クマ吉的大名放上去也會亂碼

S**t! 吉 是誰?

改設定吧




記得原本的轉碼語法改成

String value = request.getParameter("value");
if (value != null && !value.equals("")) {
 value = new String(value.getBytes("ISO8859-1"), "UTF-8");
}

耶!大功告成

把網頁轉成UTF-8的最大好處是網址有中文日文印度文或者啥小的 都不再會是亂碼

2011年12月4日 星期日

購物車完成了!!

第一頁是產品列表 搜尋的部分可以找產品名 跟 輸入單價範圍 來查詢

選擇"點"可以看到詳細資料


輸入數量後即可購買


購買確認頁


點確定就會加入購物車


如過數量超過庫存


無法成功


如果使用者亂打


亦同


買了三樣東西會長這樣


完成交易太棒了


2011年12月1日 星期四

JSP 爪哇豆豆

m4_demo_how_to_use_bean.jsp



<%@ page language="java" contentType="text/html; charset=BIG5" pageEncoding="BIG5"%>
<!--DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"-->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=BIG5">
<title>Insert title here</title>
</head>
<body>
<jsp:useBean id='tu' class='com.my_javabeans' />
<%    tu.JustAmethod("select * from products ");    %>
<%    if (tu.成功) {    %>
<%=       "成功"    %>
          <hr />
<%        if (tu.幾列 == 0) {    %>
              沒有資料
<%        } else {
               String[] each_row;    %>
               有資料
               <br />
               <table>
<%             for (int 第幾筆 = 0; 第幾筆 < tu.幾列; 第幾筆 += 1) {
                   each_row = tu.rows.elementAt(第幾筆);    %>
                   <tr>
<%                 for (int 第幾欄 = 0; 第幾欄 < tu.幾欄; 第幾欄 += 1) {
                       String column;
                       column = each_row[第幾欄];    %>
                       <td><%=column%></td>
<%                 }    %>
                   </tr>
<%             }    %>
               </table>
<%        }    %>
<%    } else {    %>
<%=       "失敗原因:" + tu.失敗原因    %>
<%    }    %>
</body>
</html>


my_javabeans.java


package com;

import java.sql.*;
import java.util.*;

public class my_javabeans {

	public int 幾欄;
	public int 幾列;
	
	public Vector rows;
	public String 失敗原因;
	public boolean 成功;
	
	public void JustAmethod(String query) {
		java.sql.Connection conn = null;
		Statement cmd = null;
		ResultSet dr = null;
		try {
			失敗原因 = "";
			成功 = false;
			rows = new Vector();
			Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
			conn = java.sql.DriverManager.getConnection(
					"jdbc:sqlserver://127.0.0.1:1433;databasename=northwind",
					"sa", "III");

			cmd = conn.createStatement();
			dr = cmd.executeQuery(query);
			ResultSetMetaData rsmd = dr.getMetaData();
			幾欄 = rsmd.getColumnCount();
			
			String [] each_row ;
			幾列 = 0;
			while ( dr.next() ) {
				幾列 += 1;
				each_row = new String[幾欄];
				for(int cn = 1; cn <= 幾欄  ; cn += 1)
				{
					each_row[cn-1]	=  dr.getString(cn);
				}
				rows.addElement(each_row);
			}
			成功 = true;

		} catch (java.sql.SQLException exp) {
			失敗原因 = "資料庫 problem: " + exp.getMessage();
			
		} catch (ClassNotFoundException exp) {
			失敗原因 = "jdbc driver problem: " + exp.getMessage();
		}
	}
}

2011年11月30日 星期三

JSP 之 SQL連線

如果你信誓旦旦的回家測試

卻看到以下畫面

曹山表示:沒有錯,你又進入了黃泉路666號

 

以上閒聊


以下正題

 

因為SQL安裝的時候預設是用WINDOWS驗證

(某軟公司自認WINDOWS驗證最安全)

所以請改成SQL Server 及 Windows驗證模式

以下圖解


以上

2011年11月24日 星期四

JSP m3_lab2

package com.web;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class m3_lab2
 */
@WebServlet("/m3_lab2")
public class m3_lab2 extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public m3_lab2() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws 

ServletException, IOException {
		// TODO Auto-generated method stub
		doPost(request,response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws 

ServletException, IOException {
		// TODO Auto-generated method stub
		response.setContentType("text/html; charset=big5");
		java.io.PrintWriter out = response.getWriter();
		String [] list = {"大雄","宜靜","技安","阿福"};
		out.println(list[(int)(Math.random()*list.length)].toString());
	}

}