# Getting Started

## What This Project Does
This codebase is a small Java web application built around a JSF-style front end and a screen-specific view model/logic pair. The core flow is simple: a web request is filtered, routed through a screen definition, and rendered by a JSP backed by a bean and logic class.

If you are new here, start by understanding the request path for one screen end-to-end. That will show you the naming conventions, how the screen definition binds UI to Java classes, and where application-wide servlet configuration lives.

## Recommended Reading Order
1. This guide — to get the map of the codebase.
2. [`full-fixture-codebase/koptWebA/WebContent/WEB-INF/web-full.xml`](../../full-fixture-codebase/koptWebA/WebContent/WEB-INF/web-full.xml) — to see the web entry configuration.
3. [`full-fixture-codebase/src/futurity-app/webA/env/view/def/WEBGAMEN_FULL_ACA001.xml`](../../full-fixture-codebase/src/futurity-app/webA/env/view/def/WEBGAMEN_FULL_ACA001.xml) — to see how a screen maps to Java classes.
4. [`full-fixture-codebase/koptWebA/WebContent/wsd/ns/jpn/pc/FULL_ACA001010PJP.jsp`](../../full-fixture-codebase/koptWebA/WebContent/wsd/ns/jpn/pc/FULL_ACA001010PJP.jsp) — to see the rendered page and its imports.
5. The screen classes under [`full-fixture-codebase/src/java/eo/web/webview/ACA001SF/`](../../full-fixture-codebase/src/java/eo/web/webview/ACA001SF/) — to understand the view model and logic pattern used by the app.

## Key Entry Points
The most important classes in this fixture are:

- [`com.fujitsu.futurity.web.x33.filter.X33JVRequestEncodingSjisFilter`](../../full-fixture-codebase/src/java/com/fujitsu/futurity/web/x33/filter/X33JVRequestEncodingSjisFilter.java) — servlet filter registered at startup.
- [`com.fujitsu.futurity.web.x33.listener.X33AppContextListener`](../../full-fixture-codebase/src/java/com/fujitsu/futurity/web/x33/listener/X33AppContextListener.java) — application context hook.
- [`eo.web.webview.ACA001SF.ACA001SFLogic`](../../full-fixture-codebase/src/java/eo/web/webview/ACA001SF/ACA001SFLogic.java) — screen logic entry point.
- [`eo.web.webview.ACA001SF.ACA001SFBean`](../../full-fixture-codebase/src/java/eo/web/webview/ACA001SF/ACA001SFBean.java) — screen bean used by the JSP.

## Project Structure
The repository is organized around a traditional Java web app layout:

- `koptWebA/WebContent/` — web assets and deployment descriptors.
- `koptWebA/WebContent/WEB-INF/web-full.xml` — servlet/filter configuration.
- `koptWebA/WebContent/wsd/...` — JSP views for individual screens.
- `src/java/` — Java source code.
- `src/java/com/fujitsu/futurity/web/x33/` — shared framework-style web infrastructure.
- `src/java/eo/web/webview/ACA001SF/` — screen-specific bean and logic classes.
- `src/futurity-app/webA/env/view/def/` — screen definition XML that binds the screen ID to Java classes.

A useful way to navigate the tree is to trace one screen from definition XML to Java classes to JSP.

## Configuration
Key files to know:

- [`koptWebA/WebContent/WEB-INF/web-full.xml`](../../full-fixture-codebase/koptWebA/WebContent/WEB-INF/web-full.xml) — declares the servlet filter and the `FacesServlet`.
- [`src/futurity-app/webA/env/view/def/WEBGAMEN_FULL_ACA001.xml`](../../full-fixture-codebase/src/futurity-app/webA/env/view/def/WEBGAMEN_FULL_ACA001.xml) — maps screen `FULL_ACA001` to its logic and form bean.
- [`koptWebA/WebContent/wsd/ns/jpn/pc/FULL_ACA001010PJP.jsp`](../../full-fixture-codebase/koptWebA/WebContent/wsd/ns/jpn/pc/FULL_ACA001010PJP.jsp) — imports the screen classes and renders the page.

From these files you can infer the runtime wiring without reading the whole codebase.

## Common Patterns
- **Screen-per-package structure**: related classes live in a matching package such as `ACA001SF`.
- **Bean + logic split**: the bean holds screen state, while the logic class contains the action method.
- **XML-driven binding**: screen definitions connect a screen ID to the Java classes used at runtime.
- **JSP imports by fully qualified class name**: the view references the bean and logic directly.
- **Minimal infrastructure in this fixture**: shared classes are small, so most of the learning comes from the screen wiring rather than framework code.

## Where to Go Next
After you read the files above, follow one screen all the way through request handling:
1. Start with `web-full.xml`.
2. Read the screen definition XML.
3. Open the screen bean and logic classes.
4. Finish with the JSP that renders the screen.

That path will give you the fastest mental model for working in this repository.