SAXParser 다운로드 및 사용 방법
위에 사이트로 들어 간후 Xerces-J-bin.2.9.0.zip 파일을 다운로드 해서 압축을 푼다.
압축을 풀면 5개의 여러가지 폴더와 파일과 5개의 .jar 파일을 볼 수 있다.
이중에서 xercesImpl.jar, xml-apis.jar 파일을
자바가 설치된 폴더의 /jre/lib/ext 폴더에 압축을 푼다.
ex: C:\Program Files\Java\jdk1.6.0\jre\lib\ext
그 후
XMLReader reader
= XMLReaderFactory.createXMLReader("org.apache.xerces.parsers.SAXParser");
이러한 형식으로 사용 하면 된다.
서블릿 2.4 태그 라이브러리 등록 방법
2.3 이하의 버젼에서는 web.xml에
<taglib-uri>http://itexper.com/guest-tablib</taglib-uri>
<taglib-location>/WEB-INF/tld/guest-taglib.tld</taglib-location>
</taglib>
2.4 버젼에서는
<taglib>
<taglib-uri>http://itexper.com/guest-tablib</taglib-uri>
<taglib-location>/WEB-INF/tld/guest-taglib.tld</taglib-location>
</taglib>
</jsp-config>
JSTL을 등록해서 사용할 경우에는 따로 web.xml에 등록할 필요가 없고.
아파치 사이트 http://jakarta.apache.org/taglibs/ 에서 다운로드 링크를 클릭하여 다운 받을 수 있다.
그 다음에 웹애플리케이션의 /WEB-INF/lib 디렉토리에 필요한 라이브러리를 복사 하면된다.
파일 압축을 풀어 lib 디렉토리 아래에 있는 파일을 복사하면 된다.
사용할때는 아래와 같은 형식으로 사용 하면된다.
<%@ taglib uri="http://java.sun.com/jstl/fmt_rt" prefix="fmt" %>
JSP DBCP DataSoruce 설정하는 방법
일단 DBCP를 설정할려면 4개의 jar 파일이 있어야 한다.
1. 오라클 jdbc 파일(ojcbc14.jar) : Tomcat5.5/common/lib 폴더에 위치시켜야 한다.
2. commons-collections-3.2.jar
3. commons-dbcp-1.2.2.jar
4. commons-pool-1.3.jar
1번 파일은 오라클 사이트에 들어가면 다운로드 받을 수 있고, 2~3번 파일은 아파치 사이트(Collections, DBCP, POOL)에 가면 받을 수 있다. 1번파일은 네이버에 검색해서 받는게 빠르다.(오라클 사이트 가입필요)
[2~3번 파일 받는곧]
2~3번 파일을 위의 이미지의 WebContent/WEB-INF/LIB 폴더에 위치 시키면
Java Resources:src/Libraries/Web App Libraires/ 에 3개의 파일의 있는것을 확인 할 수 있다.
이 파일들이 들어가 있는걸 확인했으면 다음 단계로 Tomcat 의 server.xml 파일과 위에 이미지의 web.xml(프로젝트의 web.xml)파일을 수정 해야 한다.
확대해서 보실려면 클릭하세요.
위와 같이 server.xml을 수정한 후 web.xml 파일에 아래와 같은 코드를 추가 해야 한다. <web-app>안에다가 추가 하면 된다.
<description>Oracle Datasource example</description>
<res-ref-name>jdbc/myoracle</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
[DBCP연결 영문 사이트] [참고 블로그]
org.apache.commons.dbcp.SQLNestedException
org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class '
' for connect URL 'null'
이것은 Tomcat의 server.xml 파일이 잘못되었기 때문이다~!
server.xml 파일을 열어보면.
<Resource name="jdbc/myoracle" auth="Container"
type="javax.sql.DataSource" driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@IPAddress:1521:orcl"
username="SCOTT" password="TIGER" maxActive="20" maxIdle="10"
maxWait="-1"/>
아마도 저렇게 되어있을 것이다.
이것을 수정 하려면 Context 안에 Resource를 포함 해야 한다.
<Resource name="jdbc/myoracle" auth="Container"
type="javax.sql.DataSource" driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@IPAddress:1521:orcl"
username="SCOTT" password="TIGER" maxActive="20" maxIdle="10"
maxWait="-1"/>
</Host>
톰캣 JDBC 드라이버 사용하기.
/common 디렉토리는 톰캣 서버와 모든 웹 애플리케이션이 공유하는 클래스 디렉토리이다.
JDBC에 연결하려면 적어도 JDBC URL과 user 계정과 비밀번호를 알아야 한다. 이것이 제대로 맞지 않으면 아래와 같은 Exception이 발생한다.
host 주소가 맞지 않은 경우 또는 listener가 떠있지 않은 상태
java.sql.SQLException: IO 예외 상황: The Network Adapter could not establish then connection
db명(SID, 호스트 스트링)이 틀릴 경우
java.sql.SQLException: IO 예외 상황: Connection
refused(DESCRIPTION=(TMP=)(VSNNUM=135290990)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4))))
아이디와 패스워드가 틀릴 경우
java.sql.SQLException: 널 사용자나암호가 THIN 드라이버에서 지원되지 않습니다.
출처 : 모델 2로 다시 배우는 JSP
ms-sql JDBC드라이버 설치한후 연결.테스트
<%@ page contentType = "text/html;charset=euc-kr" %>
<%@ page import = "java.sql.*" %>
<%
String dbDriver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String dbUrl = "jdbc:microsoft:sqlserver://IPAddress:1433;DatabaseName=jsp";
String dbId = "sa";
String dbPw = "password";
Connection conn = null;
Statement stmt = null;
try
{
Class.forName( dbDriver );
conn = DriverManager.getConnection( dbUrl, dbId, dbPw );
stmt = conn.createStatement();
conn.close();
out.println("mssql jdbc test: connect ok!!");
}
catch( Exception e )
{
out.println(e);
}
%>
ASP 데이터 베이스 연결.
ConnDB.open "Driver={SQL Server};Server=IPADDRESS;Database=데이터베이스;UID=sa;PWD=1234;"
아무리 봐도 이게 가장 괜찮은거 같다.
ASP session clear
이게 생각이 안나서 --; 검색을 해봐야 하는데 검색 않고 session("변수") = "" 이렇게 했다는 --;;;
ASP Substring
ASP Substring 찾다가 찾아낸 함수.
참조할 변수와 시작 점 그리고 길이를 입력 하면 된다.
참고 사이트는 http://www.w3schools.com/vbscriptASP가 비베를 사용하니깐 비베 사이트에 ~_~
The Mid function returns a specified number of characters from a string.
Tip: Use the Len function to determine the number of characters in a string.
Syntax
Mid(string,start[,length]) |
Parameter | Description |
---|---|
string | Required. The string expression from which characters are returned |
start | Required. Specifies the starting position. If set to greater than the number of characters in string, it returns an empty string ("") |
length | Optional. The number of characters to return |
Example 1
dim txt txt="This is a beautiful day!" document.write(Mid(txt,1,1)) Output: T |
Example 2
dim txt txt="This is a beautiful day!" document.write(Mid(txt,1,11)) Output: This is a b |
Example 3
dim txt txt="This is a beautiful day!" document.write(Mid(txt,1)) Output: This is a beautiful day! |
Example 4
dim txt txt="This is a beautiful day!" document.write(Mid(txt,10)) Output: beautiful day! |
Tomcat 한글 파일 처리 Servlet
OKJSP 여비님 글 펌입니다.
아래서부터 시작.
------------------------------------------------------------------------------------------------------
오랫동안 검색되고 또 문의 받아온 부분인데 정리해서 올린다 올린다 하다가 이제서야 올리네요 ^^;
내용은 현재 Tomcat 5.5 까지에서도 해결이 되지 않았던 한글첨부 파일 다운로드 문제에 대한 해결책중 하나 입니다.
java/jsp 입문이나 실무에서 사용하시라고 올립니다.
테스트환경은 windows2003/SU linux kernel 2.6.x 에서 모두 정상 동작했으며 JDK 1.5.11 에서 돌렸습니다.
도움이 되시길 바랍니다 ^^;
소스 내려갑니다~
import java.io.*;
import java.sql.*;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.*;
import com.mpage.util.db.*;
/**
* Servlet implementation class for Servlet: FileDownHelper
*
*/
public class FileDownHelper extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
/**
*
*/
private static final long serialVersionUID = 1L;
/* (non-Java-doc)
* @see javax.servlet.http.HttpServlet#HttpServlet()
*/
public FileDownHelper() {
super();
}
/* (non-Java-doc)
* @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Connection con = null;
Statement st = null;
ResultSet rs = null;
String idx = request.getParameter("idx");
ServletContext sc = getServletContext();
OutputStream out = null;
try{
File file = null;
FileInputStream fis = null;
byte[] buffer = null;
String fileName = "";
String ext = "";
con = DBConnector.getConnection("mysql");
st = con.createStatement();
rs = st.executeQuery("select file_name, org_file from board where id=" + idx); // DB 에서 파일명을 가지고 온다.
if(rs != null && rs.next()){
String seper = "";
if(System.getProperty("os.name").startsWith("Windows")){ // OS를 구분하여 구분자를 가지고 온다. -- 귀찮아서 프로퍼티에서 가져오기로 수정안함
seper = "\\";
}else{
seper = "/";
}
String filePath = sc.getRealPath("/fileUpload") +seper+ rs.getString(1); // 현재 context의 실제 경로 하위의 경로를 설정
fileName = rs.getString(2);
ext = rs.getString(2).substring(rs.getString(2).lastIndexOf("."));
file = new File(filePath);
int size = 0; // File available size 를 구해서 Buffer 의 크기 설정
fis = new FileInputStream(file);
size = fis.available(); // 파일의 사이즈를 가져온다
buffer = new byte[size];
fis.read(buffer);
fis.close();
}
/*
* MIME type 설정하는 구문 (필요하면 더 추가하면 됨
*/
if("zip".equals(ext)){
ext = "application/zip";
}else if("ppt".equals(ext)){
ext = "application/vnd.ms-powerpoint";
}else if("xls".equals(ext)){
ext = "application/vnd.ms-excel";
}else if("doc".equals(ext)){
ext = "application/msword";
}else if("txt".equals(ext)){
ext = "text/plain";
}else if("html".equals(ext)){
ext = "text/html";
}else if("htm".equals(ext)){
ext = "text/html";
}else if("jpg".equals(ext)){
ext = "image/jpeg";
}else if("jpeg".equals(ext)){
ext = "image/jpeg";
}else if("gif".equals(ext)){
ext = "image/gif";
}else if("psd".equals(ext)){
ext = "image/x-photoshop";
}else{
ext = "application/zip";
}
response.setContentType(ext);
out = response.getOutputStream();
fileName = fileName.replaceAll(" ", "");
// Browser 설정에 영향이 미치는 부분 처리
if (request.getHeader("User-Agent").indexOf("MSIE 5.5") > -1) {
response.setHeader("Content-Disposition", "filename=" +java.net.URLEncoder.encode(fileName, "euc-kr") + ";");
}else if (request.getHeader("User-Agent").indexOf("MSIE 6.0") > -1) {
response.setHeader("Content-Disposition", "filename=" +java.net.URLEncoder.encode(fileName, "UTF-8") + ";");
}else{
response.setHeader("Content-Disposition", "attachment; filename=" + java.net.URLEncoder.encode(fileName, "euc-kr") + ";");
}
if(buffer != null && buffer.length > 0){
out.write(buffer);
}
out.close();
}catch(Exception e){
//e.printStackTrace();
}finally{
if(out != null){try{out.flush();out.close();}catch(Exception e1){}}
}
}
/* (non-Java-doc)
* @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
}
}