jongviet

May 21, 2021 - JSP 1일차 본문

Spring legacy

May 21, 2021 - JSP 1일차

jongviet 2021. 5. 21. 21:26

*5월21일

-5월 20일부터 JSP에 대한 수업이 시작됐다. 개인프로젝트 및 인프런 강의를 들으면서 미리 접했던 부분이긴하지만, 입문자의 시각에서 하나하나 짚어주는 방식으로 수업이 진행되고 있어서 기본을 다시 잡기 좋은 것 같다. JSP로 기본을 배운 후 Spring framework으로 넘어갈 예정!

 

 

1)JSP 기본

-JSP는 HTML문서에서 내부적으로 자바 문법을 사용할 수 있게 하는 웹페이지 스크립트 언어. HTML이 이어지다가 중간중간 '<% %>'이라는 요상한 명령어와 함께 자바 언어가 개입된다. 이해하기가 매우 복잡하며, front & back의 경계가 모호하여 작업 구분도 잘 안된다. 강사님에 따르면 Spring framework에서는 이 부분이 말끔하게 해결되어 분리된 작업 환경을 가진다고 한다. 얼른 배우고 싶다!!!

 

HTML 사이에 낀 <% %> ..... 처음볼때 너무 어색했다.

*JSP선언관련

 

<%@ 최상단 선언부%>

->class importing 및 encoding 설정을 하는 곳.

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@page import="java.sql.SQLException"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.Connection"%>

 

<%! 변수 선언부%>

 

<%!
private String url = "jdbc:mysql://localhost/crud";
private String id = "id";
private String pwd = "password";

private Connection conn = null;
private PreparedStatement pstmt = null;
private String driverName = "com.mysql.jdbc.Driver";
private String SQL = null;

%>

 

<% 실행부 %>

 

<%
int std_no = Integer.parseInt(request.getParameter("std_no"));

try {
SQL = "select std_no, std_name, std_major, std_height, std_birth from students where std_no = ?";
pstmt = conn.prepareStatement(SQL);
pstmt.setInt(1, std_no);
ResultSet rs = pstmt.executeQuery();

if (rs.next()) {
%>

 

 

<%= 출력부 %>

 

<td><input type="number" name="std_no" readonly value="<%=rs.getInt("std_no")%>"></td>

 

 

*JSP welcome page / 최초 접속 시 기본 경로

-WebContent/WEB-INF/web.xml 파일 안에 welcome page가 기본적으로 삽입되어 있다. 'localhost:8090/프로젝트명/'과 같이 접속했을 때 기본적으로 이동하는 경로라고 생각하면 된다.

 

  <welcome-file-list>

    <welcome-file>index.html</welcome-file>

    <welcome-file>index.jsp</welcome-file>

  </welcome-file-list>

 

*HTML - DATA 수신

-httpservletRequest 객체로 form tag의 name값을 기준으로 넘긴 데이터를 받아오는 것. request는 기본적으로 모두 string으로 담겨져 넘어오게 되므로 담을 변수에 따라 형변환이 필수적임

 

empno =  Integer.parseInt(request.getParameter("empno")); // string기본이기에 int는 형변환

sal =  Integer.parseInt(request.getParameter("sal"));

deptno =  Integer.parseInt(request.getParameter("deptno"));

ename = request.getParameter("ename");

job = request.getParameter("job");

 

*form 내 input disabled 되어 있을 시?!

-특정 값의 수정을 막고자 input 내 특정 데이터 disabled 되어 있을 시, 해당 disabled된 데이터는 http로 넘어가지 않음.

->따라서 수정을 단순히 막고자 하는 목적이라면 'readonly'로 처리하면 됨.

 

*form 태그 내 소수점

<input type="number" step="0.1"> / 2자리수는 step="0.01"

 

Comments