前提・実現したいこと
Top.jspの検索ボックスに「Search」以外の6文字を入力した際にエラーページに遷移するようにしたいです。
しかし、エラーページに遷移せず以下のようなエラーが表示されます。
備考:
1.検索ボックスに[Search]以外の文字を入力した際は全てエラー画面に遷移する仕様です。
2.「Search」を入力すると、検索成功画面」で」あるtran.jspには遷移することができます。
発生している問題・エラーメッセージ
エラーメッセージ
java.lang.NullPointerException
servlet.A.doGet(A.java:37)
javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
該当のソースコード
[サーブレット A.java]
package servlet;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
- Servlet implementation class A
*/
@WebServlet("/A")
public class A extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { // TODO Auto-generated method stub String page = null;
//入力された文字
String search = req.getParameter("search");
//ボタン押された時の値
if(search.equals("Search")){ //成功 req.setAttribute("name", search); page = "/tran.jsp"; }else{ req.setAttribute("name", search); page = "/Error.jsp"; } RequestDispatcher rd = req.getRequestDispatcher(page); rd.forward(req, res); }
}
[検索画面 top.jsp]
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
[エラー画面 Error.jsp]
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
試したこと
java.lang.NullPointerExceptionは、nullアクセスが起こる事により表示されるエラーだとサイトで知り、エラーで指摘された箇所(A.java:37)を確認しましたが、どこが間違っているのかわかりませんでした、、。
補足情報(FW/ツールのバージョンなど)
Eclipseで実行しています。
プログラミング初心者です。
回答2件
あなたの回答
tips
プレビュー