Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

ログイン画面

すっきりわかるサーブレット&JSPを参考にログイン画面
を作ったのですが、値がnullですとエラーが出てしまい
ます。どうすればエラーを解消できるでしょう?
環境は、windows7でeclipseを使っています。

*画面設計
Login.java→User→LoginLogic→Login.jsp

3

回答

4000

閲覧

3件の回答

評価

0

(追記)
*Login.java

request.setCharacterEncoding("UTF-8");
        String id = 
request.getParameter("id");
        String pass  = 
request.getParameter("pass");

        User user = new User(id, pass);

        LoginLogic loginLogic = new 
LoginLogic();
        boolean isLogin = 
loginLogic.execute(user);

        if(isLogin){
            HttpSession session = 
request.getSession();
            
session.setAttribute("loginLogic", user);
        }
        RequestDispatcher dispatcher = 
request.getRequestDispatcher("/WEB-
INF/jsp/Login.jsp");
        dispatcher.forward(request, 
response);

*User

public String id;
    public String pass;

    public User(){}
    public User(String id, String pass){
        this.id = id;
        this.pass = pass;
    }

    public String getId() {return id;}
    public String getPass() {return pass;}

*LoginLogic

public boolean execute(User user){
        
if(user.getPass().equals("1234")){return true;}
        return false;

*Login.jsp

<html>
<head>
<meta charset="UTF-8">
<title>ログイン画面</title>
</head>
<body>
<h1>名刺管理</h1>
<form action = "/example/Businessservlet" 
method="get">
ログインID:<input type="text" name="id"><br>
<br>
パスワード:<input type="password" name="pass">
<br><br>
<input type="submit" value="ログイン"><br><br>
</form>
</body>
</html>

評価

0

(追記)
エラー部分は
java.lang.NullPointerException
model.LoginLogic.execute(LoginLogic.java:5)
servlet.Login.doGet(Login.java:29)
javax.servlet.http.HttpServlet.service(HttpServl
et.java:620)
javax.servlet.http.HttpServlet.service(HttpServl
et.java:727)
org.apache.tomcat.websocket.server.WsFilter.doFi
lter(WsFilter.java:52)


Login.javaの
request.setCharacterEncoding("UTF-8");
にブレークポイントを置いて、F6を押すと
String id = request.getParameter("id");
String pass = request.getParameter("pass");

変数ビューに(id)と(pass)はnullですと表示され
ます。

request.setCharacterEncoding("UTF-8");←ブレーク
ポイント
String id = request.getParameter("id");←null
String pass = 
request.getParameter("pass");←null

評価

0

目標を持つのは良いことだが、基礎を固めないままに応用
(サーブレット)に手を出すと、何も分かってないので結局
人にやってもらうことになる。
悪いことは言わないから、もっと初心者向けの編曲をするこ
とだ。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。