Java로 구현하는 게 좋아요.

13835 단어 JSPservletJava

출력이 끊임없이 좋기 때문에 처음으로 공개적으로 만든 좋은 응용 프로그램입니다.
VC 모형으로 제작되었습니다.

개요


사진을 클릭하시면 됩니다!에서 설명한 대로 해당 매개변수의 값을 수정합니다.
값은 응용 프로그램 역할 영역에 저장됩니다.
https://iineko.herokuapp.com

힘든 곳


1. HTML에서 화면 이동을 하지 않고 값을 보내는 방법을 몰라 고민이다.
화면 마이그레이션 없이 HTML로 값을 보내는 방법
2. 좋아요를 눌러도 1을 넘지 않습니다.
매번 칭찬을 받을 때마다 new라서 첫 시동 판정을 했습니다.
3. 유형을 뛰어넘어 실례를 전달하는 방법을 모른다.
YoineServelet.자바로Yoine y = new Yoine(); 그리고.
YoineLogic.자바로Yoine y 좋아요 하나 더.
Yoine.자바에 설치하고 싶어요.
Yoine Servelet에서 new, Yoine Logic에서 new가 다른 실례가 되면 어떻게 해야 할지 고민이에요.

YoineLogic은 매개변수로 Yoine 유형을 수용합니다.

소스 코드


model


Yoine.java
package model;

import java.io.Serializable;

public class Yoine implements Serializable {
    private int yoineCount = 0;

    public void setYoineCount(int yoineCount) {
        this.yoineCount = yoineCount;
    }

    public int getYoineCount() {
        return yoineCount;
    }
}
YoineLogic.java
package model;

public class YoineLogic {

    public void yoinePlus(Yoine y) {
        int count = y.getYoineCount();
        count++;
        y.setYoineCount(count);
    }
}

View


yoineView.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<style type="text/css">
<!--
   div.ta0 {text-align: left;}
   div.ta1 {text-align: center;}
   div.ta2 {text-align: right;}
   div.ta3 {text-align: justify;}
-->
</style>
<title>いいねこ!!!</title>
</head>
<body>
<div class="ta1">
<p><a href="/iine/YoineServlet?action=yoine">
<img src="/iine/finger-163689_640.jpg" alt="いいね!" width="300" height="200"></a>
<a href="/iine/YoineServlet?action=yoine">
<img src="/iine/2cat-323262_1280.jpg" alt="いいね!" width="300" height="200"></a>
</p>
<p><font size="5"><b>いいねこ!:${yoine.yoineCount}</b></font></p>
</div>
</body>
</html>

Controller


YoineServlet.java
package servlet;

import java.io.IOException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import model.Yoine;
import model.YoineLogic;

/**
 * Servlet implementation class YoineServlet
 */
@WebServlet("/YoineServlet")
public class YoineServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    public YoineServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

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

        // 初回起動を判定するための処理
        // アプリケーションスコープから値を取得
        ServletContext sc = this.getServletContext();
        Yoine y = (Yoine) sc.getAttribute("yoine");

        // 初回起動判定の続き
        // アプリケーションスコープに値がなければnewする
        if(y == null) {
            y = new Yoine();
            sc.setAttribute("yoine", y);
        }

        // リクエストパラメーターの取得
            request.setCharacterEncoding("UTF-8");
            String yoine = request.getParameter("action");


        // いいねボタン押されたら
        if (yoine != null) {

            // YoineLogicでいいねを加算
            YoineLogic yl = new YoineLogic();
            yl.yoinePlus(y);

            // いいねの数をアプリケーションスコープに保存
            sc.setAttribute("yoine", y);
        }

        // フォワード
        RequestDispatcher rd = request.getRequestDispatcher("/yoineView.jsp");
        rd.forward(request, response);

    }

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

    }

}

좋은 웹페이지 즐겨찾기