# Getting Started

## What This Project Does
This codebase is a Java web application packaged for a servlet container. The current surface area in this fixture is small, but the deployment descriptor shows it is built around JavaServer Faces (JSF) and a request-encoding filter, which suggests a traditional server-rendered web app.

If you're new to the project, start by understanding how requests enter the app, how encoding is handled, and how JSF is wired into the web layer.

## Recommended Reading Order
1. This guide
2. [`web-full.xml`](../../full-fixture-codebase/koptWebA/WebContent/WEB-INF/web-full.xml) — see how the app boots and which web components are registered
3. The JSF pages, backing beans, and services that sit behind the `FacesServlet` entry point

## Key Entry Points
There are no highly referenced classes surfaced in this snapshot, so the first things to understand are the framework entry points declared in configuration:

- [`javax.faces.webapp.FacesServlet`](../../full-fixture-codebase/koptWebA/WebContent/WEB-INF/web-full.xml) — the main JSF servlet that handles page requests
- [`com.fujitsu.futurity.web.x33.filter.X33JVRequestEncodingSjisFilter`](../../full-fixture-codebase/koptWebA/WebContent/WEB-INF/web-full.xml) — applies request encoding, likely for Japanese Shift-JIS input handling

## Project Structure
At a high level, this project follows a standard Java web-app layout:

- `WebContent/WEB-INF/` — deployment descriptors and container-specific configuration
- `WebContent/` — web-facing assets, JSF views, and other browser-delivered resources
- application packages under `src/` or similar Java source roots — backing beans, services, utilities, and domain code

In this fixture, the main confirmed file is the deployment descriptor at [`web-full.xml`](../../full-fixture-codebase/koptWebA/WebContent/WEB-INF/web-full.xml).

## Configuration
The most important configuration file here is:

- [`WebContent/WEB-INF/web-full.xml`](../../full-fixture-codebase/koptWebA/WebContent/WEB-INF/web-full.xml) — defines the web application bootstrap pieces
  - `SjisFilter` maps to `com.fujitsu.futurity.web.x33.filter.X33JVRequestEncodingSjisFilter`
  - `FacesServlet` maps to `javax.faces.webapp.FacesServlet`

Treat this file as the starting point for understanding request flow, especially if you are debugging encoding issues or JSF page routing.

## Common Patterns
Based on the configuration, expect these patterns throughout the codebase:

- **Servlet-based request flow** — requests are filtered before they reach the JSF layer
- **JSF-centric UI handling** — view rendering and page navigation likely live in JSF pages and backing beans rather than in controllers
- **Centralized encoding setup** — character encoding is handled up front in a dedicated filter instead of ad hoc in individual handlers

## Where to Go Next
After reading the deployment descriptor, trace the JSF pages that are mapped to `FacesServlet`, then find the backing beans and services they invoke. If you hit a request-encoding bug, inspect the `SjisFilter` path first.
