ラベル Jsp の投稿を表示しています。 すべての投稿を表示
ラベル Jsp の投稿を表示しています。 すべての投稿を表示

2010年10月5日火曜日

Windows TOMCAT6 + MySql + eclipse 環境でデータソース

 ■前準備
①C:\Tomcat 6.0\libにmysql-connector-java-5.1.13-bin.jarをコピー
②eclipseの各プロジェクトからプロパティ⇒Javaビルドパス⇒外部JARの追加⇒mysql-connector-java-5.1.13-bin.jarを選択し追加⇒OK

■C:\Tomcat 6.0\conf\Catalina\localhost\Test.xmlのTest.xmlに下記のxmlを追加、
私の環境だとeclipseでプロジェクトを作った際、自動でファイルが出来ていますので
そこに追加
<Context path="/Test" reloadable="true" docBase="C:\eclipse\workspace\Test" workDir="C:\eclipse\workspace\Test\work" >//ここは各自違います!!
    <Resource name="jdbc/tests"//データソース名
       auth="Container"
        type="javax.sql.DataSource"
        username=""//sqlのユーザ名
        password=""//sqlのパスワード名
        driverClassName="com.mysql.jdbc.Driver"
        url="jdbc:mysql://localhost:3306/test"//mysqlのURLとデータベースを記述、今回はtestデータベースを選択、
    />
</Context>

■Jspソースの記述、今回はeclipseのTestプロジェクトのデフォルトパッケージにjspを置いています。
<%@ page contentType="text/html; charset=Windows-31J"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="javax.naming.*"%>
<%
Context ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/tests");//ここはxmlのResource nameと合わせて記述

%>
<% System.out.print(ds); %>//デバック用
<%
Connection conn= ds.getConnection();
Statement pstmt = conn.createStatement();
String sql = "SELECT * FROM ACCOUNT";
ResultSet rs = pstmt.executeQuery(sql);
while(rs.next()){ %>
    <%=rs.getString("NAME")%><BR>
<%}
pstmt.close();
rs.close();
conn.close();
%>

2010年9月16日木曜日

JspとServletとJavaBeansの連携で分かった事

■■■■■■■■■■■サーブレットで大事な事■■■■■■■■■■■■■■

 リクエストに渡すスコープ名request.setAttribute("cb",cb);とJsp部分でJavaBeansで受け取る
<jsp:useBean id="cb" class="mybeans.CarBean"の部分の名前は合わせておく、
public class Sample7 extends HttpServlet
{
    public void doGet(HttpServletRequest request,
            HttpServletResponse respons)
    throws ServletException
    {
        try
        {
            //GETで名前の受け取り
            String tmp = request.getParameter("cars");
            String names = new String(tmp.getBytes("8859_1"),"JISAutoDetect");
       
            //BeansにCarの名前をセット
            CarBean cb = new CarBean();
            cb.setCarName(names);
            cb.makecardata();
       
            request.setAttribute("cb",cb);//この部分

2010年9月13日月曜日

ServletでHTMLと日本語を書き出し

■■■■■■■■HTMLを書き出す時■■■■■■■■■■
response.setContentType("text/html;  charset=Windows-31 ");
はhtmlの書き出しと、エンコーディングを Windows-31で行います。

■■■■■■■■テキストを書き出す時■■■■■■■■■■
response.setContentType("text/plain; charset=Windows-31J");

★上記を書かないと


?????????
 
な感じになります 

Jsp記述色々

■■■■■■変数宣言■■■■■■
<%! int i = 0; %>はJspが初めて呼び出された後、共有されます
<% i =  i++; %>
ですので、iの変数はアクセスの間カウントUPされます。

■■■■■■サーブレットを作成はHttpServletを継承■■■■■■
サーブレットを作成する時は、HttpServletを継承します。
 extends  HttpServletと記述する

■■■■■■doGet()メソッド■■■■■■
HttpServletのオーバーライドメソッド
ブラウザーがら リクエストで受け取り、レスポンス で返します、

■■■■■■例外処理■■■■■■
レスポンスの書き込みはIOExceptionでスローし、
他の例外処理は、ServletExceptionでラップてスローします。
例: 
try
{
例外の発生がある処理
}
catch(SomeException e)
{

throw new ServletException(e);
}
■■■■■■web.xml■■■■■■
<web-app>
<servlet>

 <servlet-name>TestServlet</servlet-name>//サーブレットの名前
  <servlet-class>TestServlet</servlet-class>//サーブレットのクラス、パッケージがある
//場合はパッケージに合わせましょう
</servlet>
<servlet-mapping>
 <servlet-name>TestServlet</servlet-name>//サーブレットの名前

 <url-pattern>/testservlet</url-pattern>//ブラウザからのurl
</servlet-mapping>
<web-app>
 ■■■■■■web.xmlのワイルドカード■■■■■■
/test/*
*.txtなどあります

Jspで配列中の名前表示

 jspで配列中の名前表示ソース■
<%@ page language="java" contentType="text/html; charset=windows-31j"
    pageEncoding="windows-31j"%>
   
<!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=windows-31j">
<title>Insert title here</title>
</head>
<body>
<%
String []names = {"大田","川崎","永浦","西橋"};
int i;
int count = names.length;
for(i = 0; i < count; i++)
{
out.println(names[i]);
}

%>


</body>
</html>

★★★★★★★★実行結果★★★★★★★★
大田 川崎 永浦 西橋

 ★★★★★eclipse画面★★★★














★★★★★表示URL★★★★
http://localhost:8080/Jsp10_1_1/p_intro.jsp